PM: Add pm_runtime_suspend|resume_force functions
authorUlf Hansson <ulf.hansson@linaro.org>
Sat, 1 Mar 2014 10:56:05 +0000 (11:56 +0100)
committerSimon Horman <horms+renesas@verge.net.au>
Fri, 5 Dec 2014 01:11:15 +0000 (10:11 +0900)
commitd8ef7612a482a8b904313d3361e3aac62ccba8b0
tree690a0c1a63d6bc9abfbfcaed96d56cbe3119ef46
parent5973c5d3b7b1c48511bf7db863cff459ded6f9ef
PM: Add pm_runtime_suspend|resume_force functions

This patch provides two new runtime PM helper functions which intend to
be used from system suspend/resume callbacks, to make sure devices are
put into low power state during system suspend and brought back to full
power at system resume.

The prerequisite is to have all levels of a device's runtime PM
callbacks to be defined through the SET_PM_RUNTIME_PM_OPS macro, which
means these are available for CONFIG_PM.

By using the new runtime PM helper functions especially the two
scenarios below will be addressed.

1) The PM core prevents .runtime_suspend callbacks from being invoked
during system suspend. That means even for a runtime PM centric
subsystem and driver, the device needs to be put into low power state
from a system suspend callback. Otherwise it may very well be left in
full power state (runtime resumed) while the system is suspended. By
using the new helper functions, we make sure to walk the hierarchy of
a device's power domain, subsystem and driver.

2) Subsystems and drivers need to cope with all the combinations of
CONFIG_PM_SLEEP and CONFIG_PM_RUNTIME. The two new helper functions
smothly addresses this.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit 37f204164dfb0186a0caf20bc3e3120080bcd788)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/base/power/Makefile
drivers/base/power/runtime.c
include/linux/pm_runtime.h