]> err.no Git - linux-2.6/blobdiff - drivers/base/power/resume.c
Merge 'for-linus' branch of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/shaggy...
[linux-2.6] / drivers / base / power / resume.c
index f8f5055754d65b3fd1c41348dade1e1092b9bc5e..bdd96b03b8857a14367535bf408224b1eb939503 100644 (file)
@@ -22,9 +22,22 @@ extern int sysdev_resume(void);
 
 int resume_device(struct device * dev)
 {
-       if (dev->bus && dev->bus->resume)
-               return dev->bus->resume(dev);
-       return 0;
+       int error = 0;
+
+       down(&dev->sem);
+       if (dev->power.pm_parent
+                       && dev->power.pm_parent->power.power_state) {
+               dev_err(dev, "PM: resume from %d, parent %s still %d\n",
+                       dev->power.power_state,
+                       dev->power.pm_parent->bus_id,
+                       dev->power.pm_parent->power.power_state);
+       }
+       if (dev->bus && dev->bus->resume) {
+               dev_dbg(dev,"resuming\n");
+               error = dev->bus->resume(dev);
+       }
+       up(&dev->sem);
+       return error;
 }