diff options
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r-- | drivers/pci/pci.c | 12 |
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 | ||