linux/Documentation/power
Rafael J. Wysocki 9f6d8f6ab2 PM: Move disabling/enabling runtime PM to late suspend/early resume
Currently, the PM core disables runtime PM for all devices right
after executing subsystem/driver .suspend() callbacks for them
and re-enables it right before executing subsystem/driver .resume()
callbacks for them.  This may lead to problems when there are
two devices such that the .suspend() callback executed for one of
them depends on runtime PM working for the other.  In that case,
if runtime PM has already been disabled for the second device,
the first one's .suspend() won't work correctly (and analogously
for resume).

To make those issues go away, make the PM core disable runtime PM
for devices right before executing subsystem/driver .suspend_late()
callbacks for them and enable runtime PM for them right after
executing subsystem/driver .resume_early() callbacks for them.  This
way the potential conflitcs between .suspend_late()/.resume_early()
and their runtime PM counterparts are still prevented from happening,
but the subtle ordering issues related to disabling/enabling runtime
PM for devices during system suspend/resume are much easier to avoid.

Reported-and-tested-by: Jan-Matthias Braun <jan_braun@gmx.net>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com>
Cc: 3.4+ <stable@vger.kernel.org>
2013-01-06 00:35:55 +01:00
..
regulator regulator: Update regulator_register() API signature in Documentation 2012-04-13 09:54:45 +01: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 charger-manager: Provide cm_notify_event function for in-kernel use 2012-05-05 19:51:58 -07:00
devices.txt PM / Documentation: fix typos in power management description 2012-07-03 18:32:51 +02: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 / Freezer / Docs: Update documentation about freezing of tasks 2012-04-29 22:29:30 +02: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: Introduce PM QoS device flags support 2012-10-23 01:09:12 +02:00
power_supply_class.txt power_supply: Add support for CHARGE_CONTROL_* attributes 2012-11-17 20:21:43 -08:00
runtime_pm.txt PM: Move disabling/enabling runtime PM to late suspend/early resume 2013-01-06 00:35:55 +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: suspend-and-cpuhotplug.txt: Fix typo 2012-05-05 21:52:51 +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 doc: fix broken utf8 encoding 2012-09-01 10:24:06 -07: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.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
video_extension.txt