summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-01-06 00:36:17 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-01-06 00:36:17 +0100
commitf67ffa95836b31be5d8fe336aee3bfc6412c5696 (patch)
tree444417975bd55480818ad40a723591465091c6dc /drivers
parent868b093505d6378df77bc2bb656af082330127a8 (diff)
parent9f6d8f6ab26b42620a914d67f29822f9bba90233 (diff)
downloadlinux-f67ffa95836b31be5d8fe336aee3bfc6412c5696.tar.bz2
Merge branch 'pm-sleep'
* pm-sleep: PM: Move disabling/enabling runtime PM to late suspend/early resume
Diffstat (limited to 'drivers')
-rw-r--r--drivers/base/power/main.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index a3c1404c7933..2b7f77d3fcb0 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -513,6 +513,8 @@ static int device_resume_early(struct device *dev, pm_message_t state)
Out:
TRACE_RESUME(error);
+
+ pm_runtime_enable(dev);
return error;
}
@@ -589,8 +591,6 @@ static int device_resume(struct device *dev, pm_message_t state, bool async)
if (!dev->power.is_suspended)
goto Unlock;
- pm_runtime_enable(dev);
-
if (dev->pm_domain) {
info = "power domain ";
callback = pm_op(&dev->pm_domain->ops, state);
@@ -930,6 +930,8 @@ static int device_suspend_late(struct device *dev, pm_message_t state)
pm_callback_t callback = NULL;
char *info = NULL;
+ __pm_runtime_disable(dev, false);
+
if (dev->power.syscore)
return 0;
@@ -1133,11 +1135,8 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
Complete:
complete_all(&dev->power.completion);
-
if (error)
async_error = error;
- else if (dev->power.is_suspended)
- __pm_runtime_disable(dev, false);
return error;
}