linux/Documentation/power
Rafael J. Wysocki cf579dfb82 PM / Sleep: Introduce "late suspend" and "early resume" of devices
The current device suspend/resume phases during system-wide power
transitions appear to be insufficient for some platforms that want
to use the same callback routines for saving device states and
related operations during runtime suspend/resume as well as during
system suspend/resume.  In principle, they could point their
.suspend_noirq() and .resume_noirq() to the same callback routines
as their .runtime_suspend() and .runtime_resume(), respectively,
but at least some of them require device interrupts to be enabled
while the code in those routines is running.

It also makes sense to have device suspend-resume callbacks that will
be executed with runtime PM disabled and with device interrupts
enabled in case someone needs to run some special code in that
context during system-wide power transitions.

Apart from this, .suspend_noirq() and .resume_noirq() were introduced
as a workaround for drivers using shared interrupts and failing to
prevent their interrupt handlers from accessing suspended hardware.
It appears to be better not to use them for other porposes, or we may
have to deal with some serious confusion (which seems to be happening
already).

For the above reasons, introduce new device suspend/resume phases,
"late suspend" and "early resume" (and analogously for hibernation)
whose callback will be executed with runtime PM disabled and with
device interrupts enabled and whose callback pointers generally may
point to runtime suspend/resume routines.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
2012-01-29 20:38:29 +01:00
..
regulator regulator: Fix regulator_register() API signature in Documentation 2011-12-05 16:23:51 +00:00
00-INDEX PM / Documentation: Update docs about suspend and CPU hotplug 2011-10-22 00:22:28 +02:00
apm-acpi.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
basic-pm-debugging.txt PM / Documentation: Fix spelling mistake in basic-pm-debugging.txt 2012-01-19 23:22:38 +01:00
charger-manager.txt power_supply: Charger-Manager: Add properties for power-supply-class 2012-01-04 08:08:45 +04:00
devices.txt PM / Sleep: Introduce "late suspend" and "early resume" of devices 2012-01-29 20:38:29 +01:00
drivers-testing.txt PM: Fix references to basic-pm-debugging.txt in drivers-testing.txt 2010-12-24 15:02:41 +01:00
freezing-of-tasks.txt PM / Documentation: Fix minor issue in freezing_of_tasks.txt 2012-01-19 23:22:49 +01:00
interface.txt PM / Hibernate: Make default image size depend on total RAM size 2010-10-17 01:57:43 +02:00
notifiers.txt PM: Allow drivers to allocate memory from .prepare() callbacks safely 2011-05-17 23:26:00 +02:00
opp.txt PM / OPP: Introduce function to free cpufreq table 2011-07-15 23:58:18 +02:00
pci.txt PM/PCI: Update PCI power management documentation 2010-05-18 15:01:58 -07:00
pm_qos_interface.txt PM / QoS: Update Documentation for the pm_qos and dev_pm_qos frameworks 2011-10-04 21:54:45 +02:00
power_supply_class.txt power_supply: Add a charge_type property, and use it for olpc driver 2009-07-02 18:14:37 +04:00
runtime_pm.txt PM: Run the driver callback directly if the subsystem one is not there 2011-12-21 22:01:05 +01:00
s2ram.txt PM: Add sysfs attr for rechecking dev hash from PM trace 2010-10-17 01:57:50 +02:00
states.txt PM: Documentation/power/states.txt: fix repetition 2011-03-15 00:43:17 +01:00
suspend-and-cpuhotplug.txt PM / Documentation: Update docs about suspend and CPU hotplug 2011-10-22 00:22:28 +02:00
swsusp-and-swap-files.txt typo fixes 2007-10-20 01:34:40 +02:00
swsusp-dmcrypt.txt [PATCH] swsusup with dm-crypt mini howto 2005-09-05 00:06:17 -07:00
swsusp.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
tricks.txt update email address 2010-07-19 10:56:54 +02:00
userland-swsusp.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
video_extension.txt
video.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00