PCI: Clear saved_state after the state has been restored
[pandora-kernel.git] / drivers / pci / pci-driver.c
index dbfc93c..ffc15e9 100644 (file)
@@ -445,8 +445,6 @@ static int pci_legacy_suspend(struct device *dev, pm_message_t state)
        struct pci_dev * pci_dev = to_pci_dev(dev);
        struct pci_driver * drv = pci_dev->driver;
 
-       pci_dev->state_saved = false;
-
        if (drv && drv->suspend) {
                pci_power_t prev = pci_dev->current_state;
                int error;
@@ -542,7 +540,6 @@ static int pci_restore_standard_config(struct pci_dev *pci_dev)
 static void pci_pm_default_resume_noirq(struct pci_dev *pci_dev)
 {
        pci_restore_standard_config(pci_dev);
-       pci_dev->state_saved = false;
        pci_fixup_device(pci_fixup_resume_early, pci_dev);
 }
 
@@ -608,8 +605,6 @@ static int pci_pm_suspend(struct device *dev)
        if (pci_has_legacy_pm_support(pci_dev))
                return pci_legacy_suspend(dev, PMSG_SUSPEND);
 
-       pci_dev->state_saved = false;
-
        if (!pm) {
                pci_pm_default_suspend(pci_dev);
                goto Fixup;
@@ -744,8 +739,6 @@ static int pci_pm_freeze(struct device *dev)
        if (pci_has_legacy_pm_support(pci_dev))
                return pci_legacy_suspend(dev, PMSG_FREEZE);
 
-       pci_dev->state_saved = false;
-
        if (!pm) {
                pci_pm_default_suspend(pci_dev);
                return 0;
@@ -821,6 +814,8 @@ static int pci_pm_thaw(struct device *dev)
                pci_pm_reenable_device(pci_dev);
        }
 
+       pci_dev->state_saved = false;
+
        return error;
 }
 
@@ -832,8 +827,6 @@ static int pci_pm_poweroff(struct device *dev)
        if (pci_has_legacy_pm_support(pci_dev))
                return pci_legacy_suspend(dev, PMSG_HIBERNATE);
 
-       pci_dev->state_saved = false;
-
        if (!pm) {
                pci_pm_default_suspend(pci_dev);
                goto Fixup;