@@ -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)
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@intel.com> Cc: Mika Westerberg <mika.westerberg@linux.intel.com> Cc: Erik Veijola <erik.veijola@linux.intel.com> Cc: Ashok Raj <ashok.raj@intel.com> Cc: Keith Busch <keith.busch@intel.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Krishna Dhulipala <krishnad@fb.com> Cc: Wei Zhang <wzhang@fb.com> Signed-off-by: Lukas Wunner <lukas@wunner.de> --- drivers/pci/pci.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)