PM: runtime: Add pm_runtime_get_if_active()
authorSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 25 Feb 2020 09:31:02 +0000 (11:31 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 4 Mar 2020 10:01:18 +0000 (11:01 +0100)
commitc111566bea7ccd8a05e2c56f1fb3cbb6f4b7b441
tree289a96203a2b94e304c6282bb5a4def4542897d6
parent98d54f81e36ba3bf92172791eba5ca5bd813989b
PM: runtime: Add pm_runtime_get_if_active()

pm_runtime_get_if_in_use() bumps up the PM-runtime usage count if it
is not equal to zero and the device's PM-runtime status is 'active'.
This works for drivers that do not use autoidle, but for those that
do, the function returns zero even when the device is active.

In order to maintain sane device state while the device is powered on
in the hope that it'll be needed, pm_runtime_get_if_active(dev, true)
returns a positive value if the device's PM-runtime status is 'active'
when it is called, in which case it also increments the device's usage
count.

If the second argument of pm_runtime_get_if_active() is 'false', the
function behaves just like pm_runtime_get_if_in_use(), so redefine
the latter as a wrapper around the former.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
[ rjw: Changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/power/runtime_pm.rst
drivers/base/power/runtime.c
include/linux/pm_runtime.h