diff options
Diffstat (limited to 'drivers/base/power/runtime.c')
| -rw-r--r-- | drivers/base/power/runtime.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c index 8c78443bca8..c56efd75653 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)  	else  		callback = NULL; +	if (!callback && dev->driver && dev->driver->pm) +		callback = dev->driver->pm->runtime_idle; +  	if (callback)  		__rpm_callback(callback, dev); @@ -413,6 +416,9 @@ static int rpm_suspend(struct device *dev, int rpmflags)  	else  		callback = NULL; +	if (!callback && dev->driver && dev->driver->pm) +		callback = dev->driver->pm->runtime_suspend; +  	retval = rpm_callback(callback, dev);  	if (retval) {  		__update_runtime_status(dev, RPM_ACTIVE); @@ -633,6 +639,9 @@ static int rpm_resume(struct device *dev, int rpmflags)  	else  		callback = NULL; +	if (!callback && dev->driver && dev->driver->pm) +		callback = dev->driver->pm->runtime_resume; +  	retval = rpm_callback(callback, dev);  	if (retval) {  		__update_runtime_status(dev, RPM_SUSPENDED);  |