diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-01-06 00:36:17 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-01-06 00:36:17 +0100 |
commit | f67ffa95836b31be5d8fe336aee3bfc6412c5696 (patch) | |
tree | 444417975bd55480818ad40a723591465091c6dc /drivers/base | |
parent | 868b093505d6378df77bc2bb656af082330127a8 (diff) | |
parent | 9f6d8f6ab26b42620a914d67f29822f9bba90233 (diff) |
Merge branch 'pm-sleep'
* pm-sleep:
PM: Move disabling/enabling runtime PM to late suspend/early resume
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/power/main.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index a3c1404c793..2b7f77d3fcb 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; } |