PM / Core: Introduce struct syscore_ops for core subsystems PM
authorRafael J. Wysocki <rjw@sisk.pl>
Mon, 14 Mar 2011 23:43:46 +0000 (00:43 +0100)
committerRafael J. Wysocki <rjw@sisk.pl>
Mon, 14 Mar 2011 23:43:46 +0000 (00:43 +0100)
commit40dc166cb5dddbd36aa4ad11c03915ea538f5a61
tree0a778159cf89ddee9e7d3134ae40569bdccd2a24
parentf9b9e806ae0ede772cbb9916d9ac7354a123d044
PM / Core: Introduce struct syscore_ops for core subsystems PM

Some subsystems need to carry out suspend/resume and shutdown
operations with one CPU on-line and interrupts disabled.  The only
way to register such operations is to define a sysdev class and
a sysdev specifically for this purpose which is cumbersome and
inefficient.  Moreover, the arguments taken by sysdev suspend,
resume and shutdown callbacks are practically never necessary.

For this reason, introduce a simpler interface allowing subsystems
to register operations to be executed very late during system suspend
and shutdown and very early during resume in the form of
strcut syscore_ops objects.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/base/Makefile
drivers/base/syscore.c [new file with mode: 0644]
include/linux/syscore_ops.h [new file with mode: 0644]
kernel/power/hibernate.c
kernel/power/suspend.c
kernel/sys.c