Commit 6c0d6304 authored by Len Brown's avatar Len Brown

Handle BIOS with _CRS that fails (Jun Nakajima)

parent 2043727b
......@@ -220,7 +220,6 @@ acpi_pci_link_check_current (
return AE_CTRL_TERMINATE;
}
static int
acpi_pci_link_get_current (
struct acpi_pci_link *link)
......@@ -279,6 +278,28 @@ acpi_pci_link_get_current (
return_VALUE(result);
}
static int
acpi_pci_link_try_get_current (
struct acpi_pci_link *link,
int irq)
{
int result;
ACPI_FUNCTION_TRACE("acpi_pci_link_try_get_current");
result = acpi_pci_link_get_current(link);
if (result && link->irq.active) {
return_VALUE(result);
}
if (!link->irq.active) {
ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "No active IRQ resource found\n"));
printk(KERN_WARNING "_CRS returns NULL! Using IRQ %d for device (%s [%s]).\n", irq, acpi_device_name(link->device), acpi_device_bid(link->device));
link->irq.active = irq;
}
return 0;
}
static int
acpi_pci_link_set (
......@@ -361,7 +382,7 @@ acpi_pci_link_set (
}
/* Make sure the active IRQ is the one we requested. */
result = acpi_pci_link_get_current(link);
result = acpi_pci_link_try_get_current(link, irq);
if (result) {
return_VALUE(result);
}
......@@ -574,10 +595,6 @@ acpi_pci_link_add (
else
printk(" %d", link->irq.possible[i]);
}
if (!link->irq.active)
printk(", disabled");
else if (!found)
printk(", enabled at IRQ %d", link->irq.active);
printk(")\n");
/* TBD: Acquire/release lock */
......
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