PCI/ACPI: Skip _OSC control tests if _OSC support call failed
authorBjorn Helgaas <bhelgaas@google.com>
Thu, 5 Sep 2013 21:07:43 +0000 (15:07 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 23 Sep 2013 23:40:46 +0000 (17:40 -0600)
If the _OSC support notification fails, we will never request control
(because "support == OSC_PCI_SEGMENT_GROUPS_SUPPORT", which doesn't include
all the features in ACPI_PCIE_REQ_SUPPORT), so we can return early to
simplify the code.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/pci_root.c

index 0e2004100c44d93943009f009d7e422511cfc653..67cc43a134ad9e25aed3504ce410e12554bafa25 100644 (file)
@@ -363,7 +363,7 @@ EXPORT_SYMBOL(acpi_pci_osc_control_set);
 static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm,
                                 int *clear_aspm)
 {
-       u32 support, base_support, control;
+       u32 support, control;
        acpi_status status;
        struct acpi_device *device = root->device;
        acpi_handle handle = device->handle;
@@ -372,7 +372,7 @@ static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm,
         * All supported architectures that use ACPI have support for
         * PCI domains, so we indicate this in _OSC support capabilities.
         */
-       support = base_support = OSC_PCI_SEGMENT_GROUPS_SUPPORT;
+       support = OSC_PCI_SEGMENT_GROUPS_SUPPORT;
        if (pci_ext_cfg_avail())
                support |= OSC_PCI_EXT_CONFIG_SUPPORT;
        if (pcie_aspm_support_enabled())
@@ -381,10 +381,10 @@ static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm,
                support |= OSC_PCI_MSI_SUPPORT;
        status = acpi_pci_osc_support(root, support);
        if (ACPI_FAILURE(status)) {
-               dev_info(&device->dev, "ACPI _OSC support "
-                       "notification failed, disabling PCIe ASPM\n");
+               dev_info(&device->dev, "_OSC failed (%s); disabling ASPM\n",
+                        acpi_format_exception(status));
                *no_aspm = 1;
-               support = base_support;
+               return;
        }
 
        if (!pcie_ports_disabled
This page took 0.025726 seconds and 5 git commands to generate.