diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-04-29 18:21:38 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2011-05-10 18:43:37 -0400 |
commit | a246670ddee3132fa71f8993d3989ad8ac04d965 (patch) | |
tree | afd5e3c43c8e035f9cb088583f4683744dec9f39 /drivers/acpi | |
parent | c0a86a9bea55d505574120f3e9775e3844276505 (diff) |
PCI/ACPI: Report _OSC control mask returned on failure to get control
If an attempt to get _OSC control of the PCIe native features from the
BIOS fails, report the resulting mask of control flags the BIOS was
willing to grant in the error message. Moreover, if the _OSC support
mask is insufficient for requesting control of the PCIe native features
or pcie_ports_disabled is set, print a diagnostic message containing the
_OSC support mask. This helps to diagnose obscure _OSC-related problems
on a number machines.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/pci_root.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index f911a2f8cc34..d06078d660ad 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c | |||
@@ -596,12 +596,18 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device) | |||
596 | dev_info(root->bus->bridge, | 596 | dev_info(root->bus->bridge, |
597 | "ACPI _OSC control (0x%02x) granted\n", flags); | 597 | "ACPI _OSC control (0x%02x) granted\n", flags); |
598 | } else { | 598 | } else { |
599 | dev_dbg(root->bus->bridge, | 599 | dev_info(root->bus->bridge, |
600 | "ACPI _OSC request failed (code %d)\n", status); | 600 | "ACPI _OSC request failed (%s), " |
601 | printk(KERN_INFO "Unable to assume _OSC PCIe control. " | 601 | "returned control mask: 0x%02x\n", |
602 | "Disabling ASPM\n"); | 602 | acpi_format_exception(status), flags); |
603 | pr_info("ACPI _OSC control for PCIe not granted, " | ||
604 | "disabling ASPM\n"); | ||
603 | pcie_no_aspm(); | 605 | pcie_no_aspm(); |
604 | } | 606 | } |
607 | } else { | ||
608 | dev_info(root->bus->bridge, | ||
609 | "Unable to request _OSC control " | ||
610 | "(_OSC support mask: 0x%02x)\n", flags); | ||
605 | } | 611 | } |
606 | 612 | ||
607 | pci_acpi_add_bus_pm_notifier(device, root->bus); | 613 | pci_acpi_add_bus_pm_notifier(device, root->bus); |