Skip to content

Commit

Permalink
Merge branch 'pm-sleep'
Browse files Browse the repository at this point in the history
* pm-sleep:
  PM: Move disabling/enabling runtime PM to late suspend/early resume
  • Loading branch information
Rafael J. Wysocki committed Jan 5, 2013
2 parents 868b093 + 9f6d8f6 commit f67ffa9
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
9 changes: 5 additions & 4 deletions Documentation/power/runtime_pm.txt
Original file line number Diff line number Diff line change
Expand Up @@ -642,12 +642,13 @@ out the following operations:
* During system suspend it calls pm_runtime_get_noresume() and
pm_runtime_barrier() for every device right before executing the
subsystem-level .suspend() callback for it. In addition to that it calls
pm_runtime_disable() for every device right after executing the
subsystem-level .suspend() callback for it.
__pm_runtime_disable() with 'false' as the second argument for every device
right before executing the subsystem-level .suspend_late() callback for it.

* During system resume it calls pm_runtime_enable() and pm_runtime_put_sync()
for every device right before and right after executing the subsystem-level
.resume() callback for it, respectively.
for every device right after executing the subsystem-level .resume_early()
callback and right after executing the subsystem-level .resume() callback
for it, respectively.

7. Generic subsystem callbacks

Expand Down
9 changes: 4 additions & 5 deletions drivers/base/power/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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;
}
Expand Down

0 comments on commit f67ffa9

Please sign in to comment.