Messages in this thread Patch in this message | | | Subject | Re: ACPI and broken PCI IRQ sharing on Asus M5N laptop | From | Len Brown <> | Date | 09 May 2004 23:33:25 -0400 |
| |
On Sun, 2004-05-09 at 22:47, Brown, Len wrote: > On Sun, 2004-05-09 at 20:44, Patrick Reynolds wrote:
> > 12: 310 XT-PIC i8042, Intel 82801DB-ICH4, yenta
> > try booting with "acpi_irq_isa=12" > > ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 12) *0, disabled. > > ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 12
On the assumption that cmdline works, please try this patch (without any cmdline param).
It simply tweaks the heuristic and makes IRQ12 less attractive compared to the others.
thanks, -Len
===== drivers/acpi/pci_link.c 1.28 vs edited ===== --- 1.28/drivers/acpi/pci_link.c Thu May 6 16:03:17 2004 +++ edited/drivers/acpi/pci_link.c Sun May 9 23:16:48 2004 @@ -478,7 +478,7 @@ PIRQ_PENALTY_PCI_AVAILABLE, /* IRQ9 PCI, often acpi */ PIRQ_PENALTY_PCI_AVAILABLE, /* IRQ10 PCI */ PIRQ_PENALTY_PCI_AVAILABLE, /* IRQ11 PCI */ - PIRQ_PENALTY_ISA_TYPICAL, /* IRQ12 mouse */ + PIRQ_PENALTY_ISA_USED, /* IRQ12 mouse */ PIRQ_PENALTY_ISA_USED, /* IRQ13 fpe, sometimes */ PIRQ_PENALTY_ISA_USED, /* IRQ14 ide0 */ PIRQ_PENALTY_ISA_USED, /* IRQ15 ide1 */ @@ -545,17 +545,23 @@ if (link->irq.active == link->irq.possible[i]) break; } + /* + * forget active IRQ that is not in possible list + */ + if (i == link->irq.possible_count) { + if (acpi_strict) + printk(KERN_WARNING PREFIX "_CRS %d not found" + " in _PRS\n", link->irq.active); + link->irq.active = 0; + } /* * if active found, use it; else pick entry from end of possible list. */ - if (i != link->irq.possible_count) { + if (link->irq.active) { irq = link->irq.active; } else { irq = link->irq.possible[link->irq.possible_count - 1]; - if (acpi_strict) - printk(KERN_WARNING PREFIX "_CRS %d not found" - " in _PRS\n", link->irq.active); } if (acpi_irq_balance || !link->irq.active) { | |