aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/power
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2012-04-19 16:17:42 -0700
committerTodd Poynor <toddpoynor@google.com>2012-04-19 16:17:42 -0700
commit4cd5ca7677c762cf6fb649211d8a7e546e1e6a8b (patch)
treec067da7e71964f6fa475ac92faf0cd28818f6e9a /Documentation/power
parent635aaea87060186666212363e26acc5207873b32 (diff)
parent84c606de0617ba304bca456f0ad06729198a5333 (diff)
downloadkernel_samsung_tuna-4cd5ca7677c762cf6fb649211d8a7e546e1e6a8b.zip
kernel_samsung_tuna-4cd5ca7677c762cf6fb649211d8a7e546e1e6a8b.tar.gz
kernel_samsung_tuna-4cd5ca7677c762cf6fb649211d8a7e546e1e6a8b.tar.bz2
Merge linux-omap-3.0 into android-omap-3.0
Change-Id: I86dcae86b15baab2cb26e2c53faafb57c606a2b5 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 22852b3..a6b3430 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -709,6 +709,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.