Merge branches 'pm-cpufreq', 'pm-cpuidle', 'pm-devfreq', 'pm-opp' and 'pm-tools'
[linux-drm-fsl-dcu.git] / drivers / pci / pci-driver.c
index 887e6bd95af715ad79660e14e6e14a5678e0b622..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));
 }
 
 
@@ -1383,7 +1384,7 @@ static int pci_uevent(struct device *dev, struct kobj_uevent_env *env)
        if (add_uevent_var(env, "PCI_SLOT_NAME=%s", pci_name(pdev)))
                return -ENOMEM;
 
-       if (add_uevent_var(env, "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x",
+       if (add_uevent_var(env, "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02X",
                           pdev->vendor, pdev->device,
                           pdev->subsystem_vendor, pdev->subsystem_device,
                           (u8)(pdev->class >> 16), (u8)(pdev->class >> 8),