1
linux/drivers/base/power
Rafael J. Wysocki ecf00475f2 PM / Domains: Introduce "save/restore state" device callbacks
The current PM domains code uses device drivers' .runtime_suspend()
and .runtime_resume() callbacks as the "save device state" and
"restore device state" operations, which may not be appropriate in
general, because it forces drivers to assume that they always will
be used with generic PM domains.  However, in theory, the same
hardware may be used in devices that don't belong to any PM
domain, in which case it would be necessary to add "fake" PM
domains to satisfy the above assumption.  It also may be located in
a PM domain that's not handled with the help of the generic code.

To allow device drivers that may be used along with the generic PM
domains code of more flexibility, introduce new device callbacks,
.save_state() and .restore_state(), that can be supplied by the
drivers in addition to their "standard" runtime PM callbacks.  This
will allow the drivers to be designed to work with generic PM domains
as well as without them.

For backwards compatibility, introduce default .save_state() and
.restore_state() callback routines for PM domains that will execute
a device driver's .runtime_suspend() and .runtime_resume() callbacks,
respectively, for the given device if the driver doesn't provide its
own implementations of .save_state() and .restore_state().

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2011-12-01 21:47:18 +01:00
..
clock_ops.c PM / Clocks: Only disable enabled clocks in pm_clk_suspend() 2011-11-10 00:44:10 +01:00
common.c drivers/base: change module.h -> export.h in power/common.c 2011-10-31 19:31:39 -04:00
domain.c PM / Domains: Introduce "save/restore state" device callbacks 2011-12-01 21:47:18 +01:00
generic_ops.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
main.c PM Sleep: Do not extend wakeup paths to devices with ignore_children set 2011-11-17 21:39:33 +01:00
Makefile PM QoS: Implement per-device PM QoS constraints 2011-08-25 15:35:41 +02:00
opp.c PM / OPP: Use ERR_CAST instead of ERR_PTR(PTR_ERR()) 2011-11-08 22:34:00 +01:00
power.h PM / QoS: Add function dev_pm_qos_read_value() (v3) 2011-10-04 21:54:26 +02:00
qos.c PM / QoS: Properly use the WARN() macro in dev_pm_qos_add_request() 2011-11-10 00:44:18 +01:00
runtime.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
sysfs.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
trace.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
wakeup.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00