linux/drivers/mmc/core
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
..
bus.c PM / Runtime: Rework the "runtime idle" helper routine 2013-06-03 21:49:52 +02:00
bus.h mmc: rename dev_to_mmc_card() to mmc_dev_to_card() 2010-10-23 21:11:12 +08:00
core.c MMC highlights for 3.10: 2013-05-04 13:45:17 -07:00
core.h mmc: core: Break out start_signal_voltage_switch 2013-02-24 14:37:07 -05:00
debugfs.c mmc: core: debugfs: Add signal_voltage to ios dump 2012-12-06 13:54:36 -05:00
host.c mmc: convert to idr_alloc() 2013-02-27 19:10:17 -08:00
host.h mmc: start removing enable / disable API 2012-03-27 12:20:03 -04:00
Kconfig drivers/mmc/core: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:38:06 -08:00
Makefile mmc: extend and rename cd-gpio helpers to handle more slot GPIO functions 2012-07-10 23:04:04 -04:00
mmc_ops.c mmc: support packed write command for eMMC4.5 devices 2013-02-24 14:37:16 -05:00
mmc_ops.h mmc: core: support HPI send command 2011-10-26 16:32:29 -04:00
mmc.c mmc: core: Fix bit width test failing on old eMMC cards 2013-04-04 15:33:29 -04:00
quirks.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sd_ops.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sd_ops.h mmc: add erase, secure erase, trim and secure trim operations 2010-08-12 08:43:30 -07:00
sd.c mmc: sdhci: enhance preset value function 2013-02-24 14:37:11 -05:00
sd.h mmc: sd: add support for driver type selection 2011-05-24 23:53:24 -04:00
sdio_bus.c PM / Runtime: Rework the "runtime idle" helper routine 2013-06-03 21:49:52 +02:00
sdio_bus.h mmc: basic SDIO device model 2007-09-23 19:45:31 +02:00
sdio_cis.c mmc: sdio: Change pr_warning to pr_warn_ratelimited 2012-07-22 15:25:48 -04:00
sdio_cis.h sdio: split up common and function CIS parsing 2007-09-23 20:44:22 +02:00
sdio_io.c mmc: sdio: Use multiple scatter/gather list 2012-12-06 13:54:43 -05:00
sdio_irq.c mmc: sdio: avoid spurious calls to interrupt handlers 2012-04-22 11:17:28 -04:00
sdio_ops.c mmc: sdio: Use multiple scatter/gather list 2012-12-06 13:54:43 -05:00
sdio_ops.h sdio: recognize io card without powercycle 2010-03-12 15:52:28 -08:00
sdio.c mmc: core: call pm_runtime_put_noidle in pm_runtime_get_sync failed case 2013-04-12 14:15:04 -04:00
slot-gpio.c mmc: slot-gpio: use devm_* managed functions to ease users 2013-02-11 12:51:23 -05:00