Commit 6576c1bd authored by Len Brown's avatar Len Brown Committed by Len Brown

[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
parent 183b7750
...@@ -72,6 +72,7 @@ struct acpi_pci_link_irq { ...@@ -72,6 +72,7 @@ struct acpi_pci_link_irq {
u8 edge_level; /* All IRQs */ u8 edge_level; /* All IRQs */
u8 active_high_low; /* All IRQs */ u8 active_high_low; /* All IRQs */
u8 setonboot; u8 setonboot;
u8 resource_type;
u8 possible_count; u8 possible_count;
u8 possible[ACPI_PCI_LINK_MAX_POSSIBLE]; u8 possible[ACPI_PCI_LINK_MAX_POSSIBLE];
}; };
...@@ -123,6 +124,7 @@ acpi_pci_link_check_possible ( ...@@ -123,6 +124,7 @@ acpi_pci_link_check_possible (
} }
link->irq.edge_level = p->edge_level; link->irq.edge_level = p->edge_level;
link->irq.active_high_low = p->active_high_low; link->irq.active_high_low = p->active_high_low;
link->irq.resource_type = ACPI_RSTYPE_IRQ;
break; break;
} }
case ACPI_RSTYPE_EXT_IRQ: case ACPI_RSTYPE_EXT_IRQ:
...@@ -143,6 +145,7 @@ acpi_pci_link_check_possible ( ...@@ -143,6 +145,7 @@ acpi_pci_link_check_possible (
} }
link->irq.edge_level = p->edge_level; link->irq.edge_level = p->edge_level;
link->irq.active_high_low = p->active_high_low; link->irq.active_high_low = p->active_high_low;
link->irq.resource_type = ACPI_RSTYPE_EXT_IRQ;
break; break;
} }
default: default:
...@@ -342,13 +345,18 @@ acpi_pci_link_set ( ...@@ -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 /* If IRQ<=15, first try with a "normal" IRQ descriptor. If that fails, try with
* an extended one */ * an extended one */
if (irq <= 15) { if (irq <= 15) {
resource_type = ACPI_RSTYPE_IRQ; resource_type = ACPI_RSTYPE_IRQ;
} else { } else {
resource_type = ACPI_RSTYPE_EXT_IRQ; resource_type = ACPI_RSTYPE_EXT_IRQ;
} }
}
retry_programming: retry_programming:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment