linux-sg2042/arch/arm
Rafael J. Wysocki 45f0a85c82 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>
2013-06-03 21:49:52 +02:00
..
boot Fixes following for v3.10 2013-05-27 19:26:30 -07:00
common Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-05-15 13:37:54 -07:00
configs ARM: Exynos fixes for 3.10-rc 2013-05-29 19:24:55 +09:00
crypto ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling 2013-05-22 22:01:35 +01:00
include Some ux500 fixes for the v3.10-rc series: 2013-05-20 23:49:04 -07:00
kernel Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-05-25 10:05:24 -07:00
kvm Merge tag 'kvm-3.10-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2013-05-05 14:47:31 -07:00
lib ARM: 7685/1: delay: use private ticks_per_jiffy field for timer-based delay ops 2013-04-03 16:45:50 +01:00
mach-at91 ARM: at91/sama5: fix incorrect PMC pcr div definition 2013-05-24 10:53:51 +02:00
mach-bcm ARM: platform specific firmware interfaces for 3.10 2013-05-04 12:33:36 -07:00
mach-bcm2835 ARM: bcm2835: convert to multi-platform 2013-03-12 22:30:45 -06:00
mach-clps711x
mach-cns3xxx ARM: arm-soc multiplatform updates for 3.10 2013-05-02 09:38:16 -07:00
mach-davinci ARM: arm-soc device tree changes, part 2 2013-05-07 11:06:17 -07:00
mach-dove arm: mach-dove: convert to use mvebu-mbus driver 2013-04-15 14:06:27 +00:00
mach-ebsa110
mach-ep93xx ARM: ep93xx: Fix wait for UART FIFO to be empty 2013-03-18 09:40:38 +11:00
mach-exynos Pin control fixes for v3.10: 2013-05-30 08:54:29 +09:00
mach-footbridge ARM: fix CONFIG_VIRT_TO_BUS handling 2013-03-18 13:49:57 +00:00
mach-gemini ARM: arm-soc cleanup for 3.10 2013-05-02 09:03:55 -07:00
mach-highbank ARM: arm-soc: late cleanups 2013-05-07 11:22:14 -07:00
mach-imx ARM: imx: fix typo in gpu3d_shader_sels 2013-05-12 21:39:51 +08:00
mach-integrator ARM: arm-soc: late cleanups 2013-05-07 11:22:14 -07:00
mach-iop13xx Merge commit '6bb27d7349db51b50c40534710fe164ca0d58902' into omap-timer-for-v3.10 2013-04-01 13:47:29 -05:00
mach-iop32x
mach-iop33x
mach-ixp4xx arm: Use generic idle loop 2013-04-08 17:39:24 +02:00
mach-kirkwood ARM: Orion: Remove redundant init_dma_coherent_pool_size() 2013-05-13 19:32:14 +00:00
mach-ks8695 Merge commit '6bb27d7349db51b50c40534710fe164ca0d58902' into omap-timer-for-v3.10 2013-04-01 13:47:29 -05:00
mach-lpc32xx
mach-mmp ARM: arm-soc board specific changes for 3.10, part 1 2013-05-04 12:34:30 -07:00
mach-msm proc: Use PDE attribute setting accessor functions 2013-05-07 15:01:11 -04:00
mach-mv78xx0 arm: mach-mv78xx0: convert to use the mvebu-mbus driver 2013-04-15 14:06:39 +00:00
mach-mvebu ARM: mvebu: select ARCH_REQUIRE_GPIOLIB for mvebu platform 2013-05-19 19:38:59 +00:00
mach-mxs ARM: arm-soc device tree changes, part 2 2013-05-07 11:06:17 -07:00
mach-netx ARM: 7642/1: netx: bump IRQ offset to 64 2013-03-03 22:54:11 +00:00
mach-nomadik clocksource: nomadik-mtu: fix up clocksource/timer 2013-04-26 17:10:46 -07:00
mach-omap1 ARM: OMAP: fix error return code in omap1_system_dma_init() 2013-05-16 11:25:07 -07:00
mach-omap2 PM / Runtime: Rework the "runtime idle" helper routine 2013-06-03 21:49:52 +02:00
mach-orion5x ARM: Orion: Remove redundant init_dma_coherent_pool_size() 2013-05-13 19:32:14 +00:00
mach-picoxcell
mach-prima2 Merge branch 'late/fixes' into fixes 2013-05-09 13:05:15 -07:00
mach-pxa - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
mach-realview Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-05-03 09:13:19 -07:00
mach-rpc
mach-s3c24xx ARM: arm-soc driver changes for 3.10 2013-05-04 12:31:18 -07:00
mach-s3c64xx For 3.10 we have a few new MFD drivers for: 2013-05-05 17:36:20 -07:00
mach-s5p64x0 Merge branch 'samsung/exynos-multiplatform' into next/drivers 2013-04-19 16:50:56 +02:00
mach-s5pc100 ARM: arm-soc driver changes for 3.10 2013-05-04 12:31:18 -07:00
mach-s5pv210 ARM: arm-soc driver changes for 3.10 2013-05-04 12:31:18 -07:00
mach-sa1100 cpufreq: sa11x0: move cpufreq driver to drivers/cpufreq 2013-04-10 13:19:24 +02:00
mach-shark arm: Use generic idle loop 2013-04-08 17:39:24 +02:00
mach-shmobile ARM: shmobile: marzen: Use error values in usb_power_* 2013-05-22 15:43:16 +09:00
mach-socfpga Merge branch 'gic/cleanup' into next/soc 2013-04-28 15:06:56 -07:00
mach-spear Merge branch 'late/fixes' into fixes 2013-05-09 13:05:15 -07:00
mach-sunxi ARM: sunxi: select ARCH_REQUIRE_GPIOLIB 2013-05-15 09:42:47 +02:00
mach-tegra arch/arm/mach-tegra: don't check resource with devm_ioremap_resource 2013-05-18 11:58:05 +02:00
mach-u300 ARM: u300: fix ages old copy/paste bug 2013-04-26 17:07:38 -07:00
mach-ux500 ARM: ux500: select REGULATOR 2013-05-15 15:54:00 +02:00
mach-versatile ARM: versatile: use OF init for sp804 timer 2013-04-11 15:11:21 -05:00
mach-vexpress Moves xenvm to mach-virt. 2013-05-07 15:11:43 -07:00
mach-virt Moves xenvm to mach-virt. 2013-05-07 15:11:43 -07:00
mach-vt8500 ARM: vt8500: Add missing NULL terminator in dt_compat 2013-05-20 23:30:54 -07:00
mach-w90x900 arm: Use generic idle loop 2013-04-08 17:39:24 +02:00
mach-zynq ARM: arm-soc platform updates for 3.10, part 3 2013-05-07 11:02:18 -07:00
mm Merge tag 'kvm-3.10-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2013-05-05 14:47:31 -07:00
net filter: bpf_jit_comp: refactor and unify BPF JIT image dump output 2013-03-21 17:25:56 -04:00
nwfpe
oprofile
plat-iop
plat-omap ARM: arm-soc device tree changes, part 2 2013-05-07 11:06:17 -07:00
plat-orion ARM: plat-orion: Fix num_resources and id for ge10 and ge11 2013-05-20 17:39:07 +00:00
plat-pxa
plat-samsung Fixes following for v3.10 2013-05-27 19:26:30 -07:00
plat-versatile irqchip: gic: Perform the gic_secondary_init() call via CPU notifier 2013-03-26 16:12:02 +00:00
tools ARM: Update mach-types 2013-03-22 17:24:51 +00:00
vfp ARM: 7729/1: vfp: ensure VFP_arch is non-zero when VFP is not supported 2013-05-22 22:01:37 +01:00
xen xen/arm: rename xen_secondary_init and run it on every online cpu 2013-05-13 16:14:25 +00:00
Kconfig Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-05-15 13:37:54 -07:00
Kconfig-nommu
Kconfig.debug ARM: arm-soc platform updates for 3.10, part 3 2013-05-07 11:02:18 -07:00
Makefile ARM: 7712/1: Remove trailing whitespace in arch/arm/Makefile 2013-05-07 10:34:46 +01:00