From 6576c1bd65a4223e720c94eaf610f2e6acb7e004 Mon Sep 17 00:00:00 2001 From: Len Brown Date: Thu, 25 Mar 2004 07:40:31 -0500 Subject: [PATCH] [ACPI] PCI interrupt link routing (Luming Yu) use _PRS to determine resource type for _SRS fixes HP Proliant servers http://bugzilla.kernel.org/show_bug.cgi?id=1590 --- drivers/acpi/pci_link.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index 9994ee25650b4..7c39a4e8d222f 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c @@ -72,6 +72,7 @@ struct acpi_pci_link_irq { 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 @@ acpi_pci_link_check_possible ( } 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 @@ acpi_pci_link_check_possible ( } 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 @@ acpi_pci_link_set ( } } + 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: -- 2.53.0