aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/power
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2013-11-08 00:13:51 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-11-12 17:20:30 -0500
commitea309944e226d655d7d4adca9623c575ba786bbe (patch)
treed5626cad04dcea315cc938a18478b69d97ffb2b4 /Documentation/power
parentbaab52ded242c35a2290e1fa82e0cc147d0d8c1a (diff)
PM / Runtime: Update documentation around probe|remove|suspend
PM core and driver core has changed some behavior regarding use of runtime PM. Update the documentation accordingly. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'Documentation/power')
-rw-r--r--Documentation/power/runtime_pm.txt14
1 files changed, 6 insertions, 8 deletions
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt
index 0f54333b0ff2..b6ce00b2be9a 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -547,13 +547,11 @@ helper functions described in Section 4. In that case, pm_runtime_resume()
547should be used. Of course, for this purpose the device's runtime PM has to be 547should be used. Of course, for this purpose the device's runtime PM has to be
548enabled earlier by calling pm_runtime_enable(). 548enabled earlier by calling pm_runtime_enable().
549 549
550If the device bus type's or driver's ->probe() callback runs 550It may be desirable to suspend the device once ->probe() has finished.
551pm_runtime_suspend() or pm_runtime_idle() or their asynchronous counterparts, 551Therefore the driver core uses the asyncronous pm_request_idle() to submit a
552they will fail returning -EAGAIN, because the device's usage counter is 552request to execute the subsystem-level idle callback for the device at that
553incremented by the driver core before executing ->probe(). Still, it may be 553time. A driver that makes use of the runtime autosuspend feature, may want to
554desirable to suspend the device as soon as ->probe() has finished, so the driver 554update the last busy mark before returning from ->probe().
555core uses pm_runtime_put_sync() to invoke the subsystem-level idle callback for
556the device at that time.
557 555
558Moreover, the driver core prevents runtime PM callbacks from racing with the bus 556Moreover, the driver core prevents runtime PM callbacks from racing with the bus
559notifier callback in __device_release_driver(), which is necessary, because the 557notifier callback in __device_release_driver(), which is necessary, because the
@@ -656,7 +654,7 @@ out the following operations:
656 __pm_runtime_disable() with 'false' as the second argument for every device 654 __pm_runtime_disable() with 'false' as the second argument for every device
657 right before executing the subsystem-level .suspend_late() callback for it. 655 right before executing the subsystem-level .suspend_late() callback for it.
658 656
659 * During system resume it calls pm_runtime_enable() and pm_runtime_put_sync() 657 * During system resume it calls pm_runtime_enable() and pm_runtime_put()
660 for every device right after executing the subsystem-level .resume_early() 658 for every device right after executing the subsystem-level .resume_early()
661 callback and right after executing the subsystem-level .resume() callback 659 callback and right after executing the subsystem-level .resume() callback
662 for it, respectively. 660 for it, respectively.