linux/drivers/dma
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
..
bestcomm Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-02-23 17:09:55 -08:00
ioat Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2013-05-09 09:46:45 -07:00
ipu dma: ipu: ipu_idmac: Fix section mismatch 2013-04-15 09:51:18 +05:30
ppc4xx Drivers: dma: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
sh sudmac: add support for SUDMAC 2013-04-30 15:50:12 +05:30
acpi-dma.c dma: acpi-dma: parse CSRT to extract additional resources 2013-05-14 10:23:57 +05:30
amba-pl08x.c pl080.h: moved from arm/include/asm/hardware to include/linux/amba/ 2013-01-13 05:19:45 -08:00
at_hdmac_regs.h at_hdmac: move to generic DMA binding 2013-04-30 14:17:41 +05:30
at_hdmac.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2013-05-09 09:46:45 -07:00
coh901318_lli.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-02-26 09:24:48 -08:00
coh901318.c dma: Remove erroneous __exit and __exit_p() references 2013-04-15 09:51:16 +05:30
coh901318.h dma: coh901318: merge header files 2013-01-07 17:36:37 +01:00
dmaengine.c Merge branch 'topic/of' into for-linus 2013-05-02 21:52:26 +05:30
dmaengine.h
dmatest.c dmatest: append verify result to results 2013-04-15 09:51:18 +05:30
dw_dmac_regs.h dw_dmac: add ACPI support 2013-04-15 22:04:19 +05:30
dw_dmac.c dw_dmac: add ACPI support 2013-04-15 22:04:19 +05:30
edma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-02-26 09:24:48 -08:00
ep93xx_dma.c dma: ep93xx_dma: reuse is_slave_direction helper 2013-01-12 05:07:22 -08:00
fsldma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
fsldma.h
imx-dma.c dma: imx-dma: Remove redundant NULL check before kfree 2013-04-15 09:51:18 +05:30
imx-sdma.c dma: Remove erroneous __exit and __exit_p() references 2013-04-15 09:51:16 +05:30
intel_mid_dma_regs.h
intel_mid_dma.c PM / Runtime: Rework the "runtime idle" helper routine 2013-06-03 21:49:52 +02:00
iop-adma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-02-26 09:24:48 -08:00
iovlock.c
Kconfig dma: sh: add Kconfig 2013-04-30 15:50:12 +05:30
Makefile dma: sh: add Kconfig 2013-04-30 15:50:12 +05:30
mmp_pdma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-02-26 09:24:48 -08:00
mmp_tdma.c dma: Convert to devm_ioremap_resource() 2013-01-25 12:21:46 -08:00
mpc512x_dma.c Drivers: dma: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
mv_xor.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-02-26 09:24:48 -08:00
mv_xor.h dma: mv_xor: clear the window override control registers 2012-11-22 18:16:37 +01:00
mxs-dma.c dma: mxs-dma: move to generic device tree binding 2013-04-04 21:22:43 +08:00
of-dma.c dma:of: Use a mutex to protect the of_dma_list 2013-05-02 21:50:38 +05:30
omap-dma.c dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver 2013-04-15 09:51:19 +05:30
pch_dma.c pch_dma: Use GFP_ATOMIC because called from interrupt context 2013-04-15 09:51:16 +05:30
pl330.c dma: pl330: Convert to devm_ioremap_resource() 2013-04-15 09:51:18 +05:30
sa11x0-dma.c Drivers: dma: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
sirf-dma.c dmaengine: sirf: move driver init from module_init to subsys_initcall 2013-05-02 20:48:23 +05:30
ste_dma40_ll.c dmaengine: ste_dma40: minor cosmetic fixes 2013-01-14 10:51:01 +01:00
ste_dma40_ll.h dmaengine: ste_dma40: support more than 128 event lines 2013-01-14 10:50:48 +01:00
ste_dma40.c dmaengine: ste_dma40: do not remove descriptors for cyclic transfers 2013-02-14 19:54:31 +05:30
tegra20-apb-dma.c drivers/dma: don't check resource with devm_ioremap_resource 2013-05-18 11:54:55 +02:00
timb_dma.c dma: timb_dma: Fix compiler warning 2013-04-15 09:51:16 +05:30
TODO
txx9dmac.c dma: Remove erroneous __exit and __exit_p() references 2013-04-15 09:51:16 +05:30
txx9dmac.h
virt-dma.c
virt-dma.h