Merge tag 'pm+acpi-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[linux-drm-fsl-dcu.git] / drivers / pci / pci-driver.c
index 09a66bad801838052438a6839cff914cf2016c58..3cb2210de5530e3edffd3286df3a66f455f6b2ec 100644 (file)
@@ -653,7 +653,6 @@ static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev)
 static int pci_pm_prepare(struct device *dev)
 {
        struct device_driver *drv = dev->driver;
-       int error = 0;
 
        /*
         * Devices having power.ignore_children set may still be necessary for
@@ -662,10 +661,12 @@ static int pci_pm_prepare(struct device *dev)
        if (dev->power.ignore_children)
                pm_runtime_resume(dev);
 
-       if (drv && drv->pm && drv->pm->prepare)
-               error = drv->pm->prepare(dev);
-
-       return error;
+       if (drv && drv->pm && drv->pm->prepare) {
+               int error = drv->pm->prepare(dev);
+               if (error)
+                       return error;
+       }
+       return pci_dev_keep_suspended(to_pci_dev(dev));
 }