aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2011-04-29 18:21:38 -0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2011-05-10 18:43:37 -0400
commita246670ddee3132fa71f8993d3989ad8ac04d965 (patch)
treeafd5e3c43c8e035f9cb088583f4683744dec9f39 /drivers/acpi
parentc0a86a9bea55d505574120f3e9775e3844276505 (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.c14
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);