PCI: pciehp: Request control of native hotplug only if supported
authorMika Westerberg <mika.westerberg@linux.intel.com>
Wed, 23 May 2018 22:19:22 +0000 (17:19 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 23 May 2018 22:42:53 +0000 (17:42 -0500)
Currently we request control of native PCIe hotplug unconditionally.
Native PCIe hotplug events are handled by the pciehp driver, and if it is
not enabled those events will be lost.

Request control of native PCIe hotplug only if the pciehp driver is
enabled, so we will actually handle native PCIe hotplug events.

Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/pci_root.c

index 0da18bd..dd946b6 100644 (file)
@@ -472,9 +472,11 @@ static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm)
        }
 
        control = OSC_PCI_EXPRESS_CAPABILITY_CONTROL
-               | OSC_PCI_EXPRESS_NATIVE_HP_CONTROL
                | OSC_PCI_EXPRESS_PME_CONTROL;
 
+       if (IS_ENABLED(CONFIG_HOTPLUG_PCI_PCIE))
+               control |= OSC_PCI_EXPRESS_NATIVE_HP_CONTROL;
+
        if (pci_aer_available()) {
                if (aer_acpi_firmware_first())
                        dev_info(&device->dev,