# This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/05/10 16:48:38-04:00 len.brown@intel.com # [ACPI] handle _CRS outside _PRS -- even when non-zero # avoid sharing IRQ12 # http://bugzilla.kernel.org/show_bug.cgi?id=2665 # # drivers/acpi/pci_link.c # 2004/05/10 16:42:35-04:00 len.brown@intel.com +11 -5 # handle _CRS outside _PRS even when non-zero # avoid sharing IRQ12 # diff -Nru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c --- a/drivers/acpi/pci_link.c Mon May 10 16:48:45 2004 +++ b/drivers/acpi/pci_link.c Mon May 10 16:48:45 2004 @@ -479,7 +479,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 */ @@ -546,17 +546,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) {