]> asedeno.scripts.mit.edu Git - linux.git/commit
PM / core: Add LEAVE_SUSPENDED driver flag
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 18 Nov 2017 14:31:49 +0000 (15:31 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 27 Nov 2017 00:20:59 +0000 (01:20 +0100)
commit0d4b54c6fee87ff60b0bc1007ca487449698468d
treed9874b3425fc3e411eec30659aa062f5a22ea855
parent4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323
PM / core: Add LEAVE_SUSPENDED driver flag

Define and document a new driver flag, DPM_FLAG_LEAVE_SUSPENDED, to
instruct the PM core and middle-layer (bus type, PM domain, etc.)
code that it is desirable to leave the device in runtime suspend
after system-wide transitions to the working state (for example,
the device may be slow to resume and it may be better to avoid
resuming it right away).

Generally, the middle-layer code involved in the handling of the
device is expected to indicate to the PM core whether or not the
device may be left in suspend with the help of the device's
power.may_skip_resume status bit.  That has to happen in the "noirq"
phase of the preceding system suspend (or analogous) transition.
The middle layer is then responsible for handling the device as
appropriate in its "noirq" resume callback which is executed
regardless of whether or not the device may be left suspended, but
the other resume callbacks (except for ->complete) will be skipped
automatically by the core if the device really can be left in
suspend.

The additional power.must_resume status bit introduced for the
implementation of this mechanisn is used internally by the PM core
to track the requirement to resume the device (which may depend on
its children etc).

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Documentation/driver-api/pm/devices.rst
drivers/base/power/main.c
include/linux/pm.h