linux/drivers/base
Rafael J. Wysocki e83e9aef51 PM / Runtime: Rework the "runtime idle" helper routine
The "runtime idle" helper routine, rpm_idle(), currently ignores
return values from .runtime_idle() callbacks executed by it.
However, it turns out that many subsystems use
pm_generic_runtime_idle() which checks the return value of the
driver's callback and executes pm_runtime_suspend() for the device
unless that value is not 0.  If that logic is moved to rpm_idle()
instead, pm_generic_runtime_idle() can be dropped and its users
will not need any .runtime_idle() callbacks any more.

Moreover, the PCI, SCSI, and SATA subsystems' .runtime_idle()
routines, pci_pm_runtime_idle(), scsi_runtime_idle(), and
ata_port_runtime_idle(), respectively, as well as a few drivers'
ones may be simplified if rpm_idle() calls rpm_suspend() after 0 has
been returned by the .runtime_idle() callback executed by it.

To reduce overall code bloat, make the changes described above.

Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Tested-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Kevin Hilman <khilman@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
2014-03-07 12:52:24 +08:00
..
power PM / Runtime: Rework the "runtime idle" helper routine 2014-03-07 12:52:24 +08:00
regmap Audio codec rt5631: add support 2014-02-20 18:29:18 +08:00
attribute_container.c
base.h
bus.c rk: temp revert rk change 2013-11-08 21:33:42 +08:00
class.c
core.c rk: revert 20f3d0b+v3.0.66 to v3.0 2013-11-08 21:34:05 +08:00
cpu.c rk: temp revert rk change 2013-11-08 21:33:42 +08:00
dd.c PM / runtime: Use pm_runtime_put_sync() in __device_release_driver() 2013-12-04 10:56:59 -08:00
devices_filter.h
devres.c
devtmpfs.c
dma-buf.c
dma-coherent.c
dma-contiguous.c
dma-mapping.c
driver.c
firmware_class.c rk: revert 20f3d0b+v3.0.66 to v3.0 2013-11-08 21:34:05 +08:00
firmware.c
hypervisor.c
init.c
isa.c
Kconfig rk: revert 20f3d0b+v3.0.66 to v3.0 2013-11-08 21:34:05 +08:00
Makefile rk: revert 20f3d0b+v3.0.66 to v3.0 2013-11-08 21:34:05 +08:00
map.c
memory.c rk: revert 20f3d0b+v3.0.66 to v3.0 2013-11-08 21:34:05 +08:00
module.c
node.c rk: revert 20f3d0b+v3.0.66 to v3.0 2013-11-08 21:34:05 +08:00
pinctrl.c drivers: pinctrl sleep and idle states in the core 2014-01-03 18:55:18 +08:00
platform.c PM / Runtime: Rework the "runtime idle" helper routine 2014-03-07 12:52:24 +08:00
soc.c
syscore.c
topology.c
transport_class.c