linux-uconsole/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 drivers: base: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2012-10-30 17:38:43 -07:00
base.h driver/base: implement subsys_virtual_register() 2013-03-12 11:36:35 -07:00
bus.c rk: temp revert rk change 2013-11-08 21:33:42 +08:00
class.c driver-core: constify data for class_find_device() 2013-02-06 12:18:56 -08:00
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 add intex vid pid for Foreign 3G dongle 2013-05-29 12:39:16 +08:00
devres.c Linux 3.9-rc3 2013-03-17 19:40:50 -07:00
devtmpfs.c driver core: handle user namespaces properly with the uid/gid devtmpfs change 2013-04-11 11:43:29 -07:00
dma-buf.c dma-buf: Add debugfs support 2013-05-01 16:36:22 +05:30
dma-coherent.c drivers: dma-coherent: Fix typo in dma_mmap_from_coherent documentation 2012-10-23 14:05:32 +02:00
dma-contiguous.c drivers: cma: represent physical addresses as phys_addr_t 2012-12-11 09:28:09 +01:00
dma-mapping.c [media] dma-mapping: fix dma_common_get_sgtable() conditional compilation 2012-11-27 09:42:31 -02:00
driver.c driver core: don't trigger uevent after failure 2012-07-17 10:40:23 -07:00
firmware.c
firmware_class.c rk: revert 20f3d0b+v3.0.66 to v3.0 2013-11-08 21:34:05 +08:00
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 mode_t whack-a-mole: ->is_visible() returns umode_t... 2012-05-29 23:28:42 -04:00
syscore.c
topology.c
transport_class.c