summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorJoel Stanley <joel@jms.id.au>2019-05-08 16:48:45 +0300
committerJoel Stanley <joel@jms.id.au>2019-05-08 16:48:48 +0300
commitd09fc0c4bdfbcbe251df247b5a94e2a07dec9c2f (patch)
tree893d98100d3ede2ff76905a67e1b9798c8c88868 /Documentation
parent76cc3bd0c342199b0bc0fd6afc7035274bf7a718 (diff)
parent274ede3e1a5fb3d0fd33acafb08993e95972c51f (diff)
downloadlinux-dev-5.0.tar.xz
Merge tag 'v5.0.14' into dev-5.0dev-5.0
This is the 5.0.14 stable release Signed-off-by: Joel Stanley <joel@jms.id.au>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/driver-api/usb/power-management.rst14
1 files changed, 9 insertions, 5 deletions
diff --git a/Documentation/driver-api/usb/power-management.rst b/Documentation/driver-api/usb/power-management.rst
index 79beb807996b..4a74cf6f2797 100644
--- a/Documentation/driver-api/usb/power-management.rst
+++ b/Documentation/driver-api/usb/power-management.rst
@@ -370,11 +370,15 @@ autosuspend the interface's device. When the usage counter is = 0
then the interface is considered to be idle, and the kernel may
autosuspend the device.
-Drivers need not be concerned about balancing changes to the usage
-counter; the USB core will undo any remaining "get"s when a driver
-is unbound from its interface. As a corollary, drivers must not call
-any of the ``usb_autopm_*`` functions after their ``disconnect``
-routine has returned.
+Drivers must be careful to balance their overall changes to the usage
+counter. Unbalanced "get"s will remain in effect when a driver is
+unbound from its interface, preventing the device from going into
+runtime suspend should the interface be bound to a driver again. On
+the other hand, drivers are allowed to achieve this balance by calling
+the ``usb_autopm_*`` functions even after their ``disconnect`` routine
+has returned -- say from within a work-queue routine -- provided they
+retain an active reference to the interface (via ``usb_get_intf`` and
+``usb_put_intf``).
Drivers using the async routines are responsible for their own
synchronization and mutual exclusion.