Previously we blacklisted PCIe hotplug ports for runtime PM because: (a) Ports handled by the firmware must not be transitioned to D3hot by OSPM behind the firmware's back: https://bugzilla.kernel.org/show_bug.cgi?id=53811 (b) For ports handled natively by OSPM we lacked proper runtime PM support in the pciehp driver. We've just rectified the latter, so stop blacklisting those. Cc: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> Cc: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> Cc: Erik Veijola <erik.veijola@xxxxxxxxxxxxxxx> Cc: Ashok Raj <ashok.raj@xxxxxxxxx> Cc: Keith Busch <keith.busch@xxxxxxxxx> Cc: Yinghai Lu <yinghai@xxxxxxxxxx> Cc: Krishna Dhulipala <krishnad@xxxxxx> Cc: Wei Zhang <wzhang@xxxxxx> Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx> --- drivers/pci/pci.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index b01bd5bba8e6..7567e575d536 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -2244,13 +2244,10 @@ bool pci_bridge_d3_possible(struct pci_dev *bridge) return false; /* - * Hotplug interrupts cannot be delivered if the link is down, - * so parents of a hotplug port must stay awake. In addition, - * hotplug ports handled by firmware in System Management Mode + * Hotplug ports handled by firmware in System Management Mode * may not be put into D3 by the OS (Thunderbolt on non-Macs). - * For simplicity, disallow in general for now. */ - if (bridge->is_hotplug_bridge) + if (bridge->is_hotplug_bridge && !pciehp_is_native(bridge)) return false; if (pci_bridge_d3_force) -- 2.11.0