aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r--drivers/pci/pci.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index a881c0d3d2e8..7904d02ffdb9 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -2241,10 +2241,13 @@ bool pci_bridge_d3_possible(struct pci_dev *bridge)
2241 return false; 2241 return false;
2242 2242
2243 /* 2243 /*
2244 * Hotplug ports handled by firmware in System Management Mode 2244 * Hotplug interrupts cannot be delivered if the link is down,
2245 * so parents of a hotplug port must stay awake. In addition,
2246 * hotplug ports handled by firmware in System Management Mode
2245 * may not be put into D3 by the OS (Thunderbolt on non-Macs). 2247 * may not be put into D3 by the OS (Thunderbolt on non-Macs).
2248 * For simplicity, disallow in general for now.
2246 */ 2249 */
2247 if (bridge->is_hotplug_bridge && !pciehp_is_native(bridge)) 2250 if (bridge->is_hotplug_bridge)
2248 return false; 2251 return false;
2249 2252
2250 if (pci_bridge_d3_force) 2253 if (pci_bridge_d3_force)
@@ -2276,10 +2279,7 @@ static int pci_dev_check_d3cold(struct pci_dev *dev, void *data)
2276 !pci_pme_capable(dev, PCI_D3cold)) || 2279 !pci_pme_capable(dev, PCI_D3cold)) ||
2277 2280
2278 /* If it is a bridge it must be allowed to go to D3. */ 2281 /* If it is a bridge it must be allowed to go to D3. */
2279 !pci_power_manageable(dev) || 2282 !pci_power_manageable(dev))
2280
2281 /* Hotplug interrupts cannot be delivered if the link is down. */
2282 dev->is_hotplug_bridge)
2283 2283
2284 *d3cold_ok = false; 2284 *d3cold_ok = false;
2285 2285