Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e358bad7 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

PM / Runtime: Improve documentation of enable, disable and barrier



The runtime PM documentation in Documentation/power/runtime_pm.txt
doesn't say that pm_runtime_enable() and pm_runtime_disable() work by
operating on power.disable_depth, which is wrong, because the
possibility of nesting disables doesn't follow from the description
of these functions.  Also, there is no description of
pm_runtime_barrier() at all in the document, which is confusing.
Improve the documentation by fixing those issues.

Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
parent 1e2ef05b
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -369,17 +369,27 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h:
      pm_runtime_autosuspend(dev) and return its result

  void pm_runtime_enable(struct device *dev);
    - enable the run-time PM helper functions to run the device bus type's
      run-time PM callbacks described in Section 2
    - decrement the device's 'power.disable_depth' field; if that field is equal
      to zero, the run-time PM helper functions can execute subsystem-level
      callbacks described in Section 2 for the device

  int pm_runtime_disable(struct device *dev);
    - prevent the run-time PM helper functions from running subsystem-level
      run-time PM callbacks for the device, make sure that all of the pending
    - increment the device's 'power.disable_depth' field (if the value of that
      field was previously zero, this prevents subsystem-level runtime PM
      callbacks from being run for the device), make sure that all of the pending
      run-time PM operations on the device are either completed or canceled;
      returns 1 if there was a resume request pending and it was necessary to
      execute the subsystem-level resume callback for the device to satisfy that
      request, otherwise 0 is returned

  int pm_runtime_barrier(struct device *dev);
    - check if there's a resume request pending for the device and resume it
      (synchronously) in that case, cancel any other pending runtime PM requests
      regarding it and wait for all runtime PM operations on it in progress to
      complete; returns 1 if there was a resume request pending and it was
      necessary to execute the subsystem-level resume callback for the device to
      satisfy that request, otherwise 0 is returned

  void pm_suspend_ignore_children(struct device *dev, bool enable);
    - set/unset the power.ignore_children flag of the device