driver core / PM: Add PM domain callbacks for device setup/cleanup
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 20 Mar 2015 12:59:27 +0000 (13:59 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 22 Mar 2015 21:14:12 +0000 (22:14 +0100)
commite90d5532773e2bcccc538dd346b9fc3482cd700c
tree84ee8ca4022e8538f871cd89a5ee43bf21338fc7
parenteea97aed815ac25b9435a556fce345d257f47405
driver core / PM: Add PM domain callbacks for device setup/cleanup

If PM domains are in use, it may be necessary to prepare the code
handling a PM domain for driver probing.  For example, in some
cases device drivers rely on the ability to power on the devices
with the help of the IO runtime PM framework and the PM domain
code needs to be ready for that.  Also, if that code has not been
fully initialized yet, the driver probing should be deferred.

Moreover, after the probing is complete, it may be necessary to
put the PM domain in question into the state reflecting the current
needs of the devices in it, for example, so that power is not drawn
in vain.  The same should be done after removing a driver from
a device, as the PM domain state may need to be changed to reflect
the new situation.

For these reasons, introduce new PM domain callbacks, ->activate,
->sync and ->dismiss called, respectively, before probing for a
device driver, after the probing has completed successfully and
if the probing has failed or the driver has been removed.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Kevin Hilman <khilman@linaro.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/dd.c
include/linux/pm.h