OpenCloudOS-Kernel/drivers/base/power
Rafael J. Wysocki 0aa2a22169 PM / Domains: Preliminary support for devices with power.irq_safe set
The generic PM domains framework currently doesn't work with devices
whose power.irq_safe flag is set, because runtime PM callbacks for
such devices are run with interrupts disabled and the callbacks
provided by the generic PM domains framework use domain mutexes
and may sleep.  However, such devices very well may belong to
power domains on some systems, so the generic PM domains framework
should take them into account.

For this reason, modify the generic PM domains framework so that the
domain .power_off() and .power_on() callbacks are never executed for
a domain containing devices with power.irq_safe set, although the
.stop_device() and .start_device() callbacks are still run for them.

Additionally, introduce a flag allowing the creator of a
struct generic_pm_domain object to indicate that its .stop_device()
and .start_device() callbacks may be run in interrupt context
(might_sleep_if() triggers if that flag is not set and one of those
callbacks is run in interrupt context).

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2011-08-25 15:37:04 +02:00
..
Makefile PM: Reference counting of power.subsys_data 2011-08-25 15:34:01 +02:00
clock_ops.c PM: Move clock-related definitions and headers to separate file 2011-08-25 15:34:19 +02:00
common.c PM: Move clock-related definitions and headers to separate file 2011-08-25 15:34:19 +02:00
domain.c PM / Domains: Preliminary support for devices with power.irq_safe set 2011-08-25 15:37:04 +02:00
generic_ops.c PM: Introduce generic "noirq" callback routines for subsystems (v2) 2011-07-02 14:29:55 +02:00
main.c PM: Limit race conditions between runtime PM and system sleep (v2) 2011-07-06 10:51:58 +02:00
opp.c drivers/base/power/opp.c: fix dev_opp initial value 2011-07-26 16:49:41 -07:00
power.h PM: Do not create wakeup sysfs files for devices that cannot wake up 2011-03-15 00:43:14 +01:00
runtime.c PM / Runtime: Allow _put_sync() from interrupts-disabled context 2011-08-05 21:45:20 +02:00
sysfs.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
trace.c PM: Add "RTC" to PM trace time stamps to avoid confusion 2011-07-15 23:58:19 +02:00
wakeup.c PM / Wakeup: Remove useless synchronize_rcu() call 2011-05-17 23:19:19 +02:00