summaryrefslogtreecommitdiffstats
path: root/Documentation/power
diff options
context:
space:
mode:
authorBen Dooks <ben.dooks@codethink.co.uk>2015-04-17 02:14:15 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-05-13 00:02:38 +0200
commitf6a2fbb903d51b1e328d6e358048426ca97932ad (patch)
tree3fe02ae423308b025600a64db5fd764ce2f24705 /Documentation/power
parentLinux 4.1-rc3 (diff)
downloadlinux-f6a2fbb903d51b1e328d6e358048426ca97932ad.tar.xz
linux-f6a2fbb903d51b1e328d6e358048426ca97932ad.zip
PM / runtime: add note about re-calling in during device probe()
The sh_eth driver has come up with an issue where the runtime_pm code suspends it during the probe() method due to the network device registration re-calling into the driver. Add a note about this into the documentation. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'Documentation/power')
-rw-r--r--Documentation/power/runtime_pm.txt6
1 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt
index 44fe1d28a163..e76dc0ad4d2b 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -556,6 +556,12 @@ helper functions described in Section 4. In that case, pm_runtime_resume()
should be used. Of course, for this purpose the device's runtime PM has to be
enabled earlier by calling pm_runtime_enable().
+Note, if the device may execute pm_runtime calls during the probe (such as
+if it is registers with a subsystem that may call back in) then the
+pm_runtime_get_sync() call paired with a pm_runtime_put() call will be
+appropriate to ensure that the device is not put back to sleep during the
+probe. This can happen with systems such as the network device layer.
+
It may be desirable to suspend the device once ->probe() has finished.
Therefore the driver core uses the asyncronous pm_request_idle() to submit a
request to execute the subsystem-level idle callback for the device at that