diff options
-rw-r--r-- | drivers/pci/pci.c | 1 | ||||
-rw-r--r-- | drivers/pci/pcie/portdrv_pci.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index f3ea977a5b1b..ab4bf5a4c2f1 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
@@ -1941,6 +1941,7 @@ void pci_pm_init(struct pci_dev *dev) | |||
1941 | dev->pm_cap = pm; | 1941 | dev->pm_cap = pm; |
1942 | dev->d3_delay = PCI_PM_D3_WAIT; | 1942 | dev->d3_delay = PCI_PM_D3_WAIT; |
1943 | dev->d3cold_delay = PCI_PM_D3COLD_WAIT; | 1943 | dev->d3cold_delay = PCI_PM_D3COLD_WAIT; |
1944 | dev->d3cold_allowed = true; | ||
1944 | 1945 | ||
1945 | dev->d1_support = false; | 1946 | dev->d1_support = false; |
1946 | dev->d2_support = false; | 1947 | dev->d2_support = false; |
diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c index 3a7eefcb270a..62f5a76c8f80 100644 --- a/drivers/pci/pcie/portdrv_pci.c +++ b/drivers/pci/pcie/portdrv_pci.c | |||
@@ -200,6 +200,11 @@ static int __devinit pcie_portdrv_probe(struct pci_dev *dev, | |||
200 | return status; | 200 | return status; |
201 | 201 | ||
202 | pci_save_state(dev); | 202 | pci_save_state(dev); |
203 | /* | ||
204 | * D3cold may not work properly on some PCIe port, so disable | ||
205 | * it by default. | ||
206 | */ | ||
207 | dev->d3cold_allowed = false; | ||
203 | if (!pci_match_id(port_runtime_pm_black_list, dev)) | 208 | if (!pci_match_id(port_runtime_pm_black_list, dev)) |
204 | pm_runtime_put_noidle(&dev->dev); | 209 | pm_runtime_put_noidle(&dev->dev); |
205 | 210 | ||