aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/power
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2012-04-19 16:08:42 -0700
committerTodd Poynor <toddpoynor@google.com>2012-04-19 16:09:11 -0700
commit84c606de0617ba304bca456f0ad06729198a5333 (patch)
treed6f615065646e72ae0914260388db121297b3c02 /Documentation/power
parenta6d21d824242244ec6c02c18a517bf021f1e70cd (diff)
parent0527fde0639955203ad48a9fd83bd6fc35e82e07 (diff)
downloadkernel_samsung_tuna-84c606de0617ba304bca456f0ad06729198a5333.zip
kernel_samsung_tuna-84c606de0617ba304bca456f0ad06729198a5333.tar.gz
kernel_samsung_tuna-84c606de0617ba304bca456f0ad06729198a5333.tar.bz2
Merge linux-stable 3.0.28 into linux-omap-3.0
Change-Id: I76904a60370e2cb9cc29ccde5d526d9183ff4f8e Signed-off-by: Todd Poynor <toddpoynor@google.com>
Diffstat (limited to 'Documentation/power')
-rw-r--r--Documentation/power/runtime_pm.txt10
1 files changed, 10 insertions, 0 deletions
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt
index b24875b..6ade987 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -708,6 +708,16 @@ will behave normally, not taking the autosuspend delay into account.
Similarly, if the power.use_autosuspend field isn't set then the autosuspend
helper functions will behave just like the non-autosuspend counterparts.
+Under some circumstances a driver or subsystem may want to prevent a device
+from autosuspending immediately, even though the usage counter is zero and the
+autosuspend delay time has expired. If the ->runtime_suspend() callback
+returns -EAGAIN or -EBUSY, and if the next autosuspend delay expiration time is
+in the future (as it normally would be if the callback invoked
+pm_runtime_mark_last_busy()), the PM core will automatically reschedule the
+autosuspend. The ->runtime_suspend() callback can't do this rescheduling
+itself because no suspend requests of any kind are accepted while the device is
+suspending (i.e., while the callback is running).
+
The implementation is well suited for asynchronous use in interrupt contexts.
However such use inevitably involves races, because the PM core can't
synchronize ->runtime_suspend() callbacks with the arrival of I/O requests.