summaryrefslogtreecommitdiff
path: root/drivers/pci
diff options
context:
space:
mode:
authorScott Wood <scottwood@freescale.com>2013-05-20 18:39:02 (GMT)
committerScott Wood <scottwood@freescale.com>2013-05-20 18:39:02 (GMT)
commitb08bbdbf93d9862b77d41560c1447f37c3954930 (patch)
tree1defef32b478eead9fbcfc4646900a4122a86172 /drivers/pci
parent84df6e416de47ccca8845e584ef3683ad068b790 (diff)
parentdbf932a9b316d5b29b3e220e5a30e7a165ad2992 (diff)
downloadlinux-fsl-qoriq-b08bbdbf93d9862b77d41560c1447f37c3954930.tar.xz
Merge tag 'v3.8.13'
This is the 3.8.13 stable release
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pci-driver.c4
-rw-r--r--drivers/pci/pci.c12
2 files changed, 8 insertions, 8 deletions
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index f79cbcd..8c1ecc5 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -628,6 +628,7 @@ static int pci_pm_suspend(struct device *dev)
goto Fixup;
}
+ pci_dev->state_saved = false;
if (pm->suspend) {
pci_power_t prev = pci_dev->current_state;
int error;
@@ -774,6 +775,7 @@ static int pci_pm_freeze(struct device *dev)
return 0;
}
+ pci_dev->state_saved = false;
if (pm->freeze) {
int error;
@@ -862,6 +864,7 @@ static int pci_pm_poweroff(struct device *dev)
goto Fixup;
}
+ pci_dev->state_saved = false;
if (pm->poweroff) {
int error;
@@ -987,6 +990,7 @@ static int pci_pm_runtime_suspend(struct device *dev)
if (!pm || !pm->runtime_suspend)
return -ENOSYS;
+ pci_dev->state_saved = false;
pci_dev->no_d3cold = false;
error = pm->runtime_suspend(dev);
suspend_report_result(pm->runtime_suspend, error);
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 5cb5820..d1b4e00 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -651,15 +651,11 @@ static int pci_platform_power_transition(struct pci_dev *dev, pci_power_t state)
error = platform_pci_set_power_state(dev, state);
if (!error)
pci_update_current_state(dev, state);
- /* Fall back to PCI_D0 if native PM is not supported */
- if (!dev->pm_cap)
- dev->current_state = PCI_D0;
- } else {
+ } else
error = -ENODEV;
- /* Fall back to PCI_D0 if native PM is not supported */
- if (!dev->pm_cap)
- dev->current_state = PCI_D0;
- }
+
+ if (error && !dev->pm_cap) /* Fall back to PCI_D0 */
+ dev->current_state = PCI_D0;
return error;
}