aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/power/runtime.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/power/runtime.c')
-rw-r--r--drivers/base/power/runtime.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
index 8c78443bca8f..c56efd756531 100644
--- a/drivers/base/power/runtime.c
+++ b/drivers/base/power/runtime.c
@@ -250,6 +250,9 @@ static int rpm_idle(struct device *dev, int rpmflags)
250 else 250 else
251 callback = NULL; 251 callback = NULL;
252 252
253 if (!callback && dev->driver && dev->driver->pm)
254 callback = dev->driver->pm->runtime_idle;
255
253 if (callback) 256 if (callback)
254 __rpm_callback(callback, dev); 257 __rpm_callback(callback, dev);
255 258
@@ -413,6 +416,9 @@ static int rpm_suspend(struct device *dev, int rpmflags)
413 else 416 else
414 callback = NULL; 417 callback = NULL;
415 418
419 if (!callback && dev->driver && dev->driver->pm)
420 callback = dev->driver->pm->runtime_suspend;
421
416 retval = rpm_callback(callback, dev); 422 retval = rpm_callback(callback, dev);
417 if (retval) { 423 if (retval) {
418 __update_runtime_status(dev, RPM_ACTIVE); 424 __update_runtime_status(dev, RPM_ACTIVE);
@@ -633,6 +639,9 @@ static int rpm_resume(struct device *dev, int rpmflags)
633 else 639 else
634 callback = NULL; 640 callback = NULL;
635 641
642 if (!callback && dev->driver && dev->driver->pm)
643 callback = dev->driver->pm->runtime_resume;
644
636 retval = rpm_callback(callback, dev); 645 retval = rpm_callback(callback, dev);
637 if (retval) { 646 if (retval) {
638 __update_runtime_status(dev, RPM_SUSPENDED); 647 __update_runtime_status(dev, RPM_SUSPENDED);