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 {
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:
......
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