linux/Documentation/driver-api
Rafael J. Wysocki 75e94645fc PM / core: Direct DPM_FLAG_SMART_SUSPEND optimization
Make the PM core avoid invoking the "late" and "noirq" system-wide
suspend (or analogous) callbacks provided by device drivers directly
for devices with DPM_FLAG_SMART_SUSPEND set that are in runtime
suspend during the "late" and "noirq" phases of system-wide suspend
(or analogous) transitions.  That is only done for devices without
any middle-layer "late" and "noirq" suspend callbacks (to avoid
confusing the middle layer if there is one).

The underlying observation is that runtime PM is disabled for devices
during the "late" and "noirq" system-wide suspend phases, so if they
remain in runtime suspend from the "late" phase forward, it doesn't
make sense to invoke the "late" and "noirq" callbacks provided by
the drivers for them (arguably, the device is already suspended and
in the right state).  Thus, if the remaining driver suspend callbacks
are to be invoked directly by the core, they can be skipped.

This change really makes it possible for, say, platform device
drivers to re-use runtime PM suspend and resume callbacks by
pointing ->suspend_late and ->resume_early, respectively (and
possibly the analogous hibernation-related callback pointers too),
to them without adding any extra "is the device already suspended?"
type of checks to the callback routines, as long as they will be
invoked directly by the core.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2018-01-03 00:29:55 +01:00
..
80211 cfg80211: remove unused function ieee80211_data_from_8023() 2017-09-21 11:42:02 +02:00
dmaengine dmaengine: doc : Fix warning "Title underline too short" while make xmldocs 2017-12-02 08:36:50 -07:00
firmware Revert "firmware: add sanity check on shutdown/suspend" 2017-09-10 21:19:06 -07:00
iio docs: IIO documentation sphinx conversion 2017-01-04 13:24:41 -07:00
pm PM / core: Direct DPM_FLAG_SMART_SUSPEND optimization 2018-01-03 00:29:55 +01:00
usb Documentation: fix usb related doc refs 2017-10-12 11:15:48 -06:00
basics.rst docs: Do not include kerneldoc comments from kernel/sys.c 2017-07-17 14:05:36 -06:00
conf.py doc-rst: make driver-api folder buildable stand-alone 2016-10-26 17:25:00 -06:00
device_link.rst docs / driver-api: Fix structure references in device_link.rst 2017-02-20 16:40:46 -07:00
device-io.rst docs: Convert the deviceio template to RST 2017-01-31 17:31:21 -07:00
dma-buf.rst docs: Do not include from .../seqno-fence.c 2017-07-17 14:07:49 -06:00
edac.rst edac.rst: move concepts dictionary from edac.h 2016-12-15 08:58:12 -02:00
frame-buffer.rst
gpio.rst docs: driver-api: Add GPIO section 2017-08-14 15:01:13 +02:00
hsi.rst docs: split up serial-interfaces.rst 2016-09-06 09:14:52 -06:00
i2c.rst Merge branch 'i2c/for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2017-07-12 10:04:56 -07:00
index.rst dmaengine: doc: Add ReST style dmaengine document 2017-11-05 10:03:19 -07:00
infrastructure.rst PM / docs: Drop confusing kernel-doc references from infrastructure.rst 2017-01-03 00:07:09 +01:00
input.rst
libata.rst libata.rst: add c function and struct cross-references 2017-05-16 08:44:11 -03:00
message-based.rst docs: Don't format internal MPT docs 2016-09-06 09:15:48 -06:00
misc_devices.rst docs-rst: core_api: move driver-specific stuff to drivers_api 2017-04-02 14:17:43 -06:00
miscellaneous.rst docs: driver-api: Remove trailing blank line 2017-08-07 14:27:45 -06:00
mtdnand.rst mtd: nand: Rename nand.h into rawnand.h 2017-08-13 10:11:49 +02:00
pci.rst Documentation: fix docs build error after source file removed 2017-12-03 15:11:45 -07:00
pinctl.rst pinctrl/gpio: Unify namespace for cross-calls 2017-09-22 11:02:10 +02:00
rapidio.rst docs-rst: convert rapidio book to ReST 2017-05-16 08:44:16 -03:00
regulator.rst docs: Convert the regulator docbook to RST 2017-01-31 17:31:41 -07:00
s390-drivers.rst docs: Get the struct cmbdata kernel doc from the right file 2017-07-17 14:19:25 -06:00
scsi.rst scsi: fix doc. typo for I2O 2017-10-11 14:20:50 -04:00
sound.rst
spi.rst docs: split up serial-interfaces.rst 2016-09-06 09:14:52 -06:00
uio-howto.rst doc: convert UIO howto from docbook to sphinx 2017-01-31 11:12:41 +01:00
vme.rst docs: Update VME documentation to include kerneldoc comments 2017-03-17 15:10:49 +09:00
w1.rst There has been a fair amount of activity in the docs tree this time 2017-07-03 21:13:25 -07:00