http://linux-acpi.bkbits.net/linux-acpi-test-2.6.5 len.brown@intel.com|ChangeSet|20040325225325|21169 len.brown diff -Nru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c --- a/drivers/acpi/pci_link.c Fri Mar 26 12:07:38 2004 +++ b/drivers/acpi/pci_link.c Fri Mar 26 12:07:38 2004 @@ -72,6 +72,7 @@ u8 edge_level; /* All IRQs */ u8 active_high_low; /* All IRQs */ u8 setonboot; + u8 resource_type; u8 possible_count; u8 possible[ACPI_PCI_LINK_MAX_POSSIBLE]; }; @@ -123,6 +124,7 @@ } link->irq.edge_level = p->edge_level; link->irq.active_high_low = p->active_high_low; + link->irq.resource_type = ACPI_RSTYPE_IRQ; break; } case ACPI_RSTYPE_EXT_IRQ: @@ -143,6 +145,7 @@ } link->irq.edge_level = p->edge_level; link->irq.active_high_low = p->active_high_low; + link->irq.resource_type = ACPI_RSTYPE_EXT_IRQ; break; } default: @@ -342,13 +345,18 @@ } } + resource_type = link->irq.resource_type; + + if (resource_type != ACPI_RSTYPE_IRQ && + resource_type != ACPI_RSTYPE_EXT_IRQ){ /* If IRQ<=15, first try with a "normal" IRQ descriptor. If that fails, try with * an extended one */ - if (irq <= 15) { - resource_type = ACPI_RSTYPE_IRQ; - } else { - resource_type = ACPI_RSTYPE_EXT_IRQ; - } + if (irq <= 15) { + resource_type = ACPI_RSTYPE_IRQ; + } else { + resource_type = ACPI_RSTYPE_EXT_IRQ; + } + } retry_programming: