linux/drivers/mmc/core
Ulf Hansson 4febb7e20a mmc: core: Invoke mmc_pwrseq_post_power_on() prior MMC_POWER_ON state
Host drivers have different ways to sends their "init stream" to the
card. Some need to do it as part of a request, some do it from the
->set_ios() callback in the MMC_POWER_ON state and some don't send an
"init stream" at all.

To be able to use the reset GPIOs from the simple MMC power sequence
provider, the card need to be powered and the "init stream" must not
have been sent.

To cope with these requirements, invoke mmc_pwrseq_post_power_on()
prior we change the state to MMC_POWER_ON in mmc_power_up().

Host drivers shall perform power up operations in the MMC_POWER_UP
state. Unfortunate three hosts (au1xmmc, cb710-mmc and toshsd) don't
conform to this expectation. Instead those ignore the MMC_POWER_UP
state and delays their power up operations to the MMC_POWER_ON state.

Those hosts needs to change their behavior to enable proper support for
the simple MMC power sequence provider.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
2015-02-03 20:56:58 +01:00
..
bus.c mmc: Add SDIO function devicetree subnode parsing 2015-01-19 09:56:26 +01: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: core: Invoke mmc_pwrseq_post_power_on() prior MMC_POWER_ON state 2015-02-03 20:56:58 +01:00
core.h mmc: core: Simplify by adding mmc_execute_tuning() 2015-01-19 09:56:30 +01:00
debugfs.c mmc: core: Use mmc_get_ext_csd() instead of mmc_send_ext_csd() 2014-11-10 12:40:44 +01:00
host.c mmc: core: Initial support for MMC power sequences 2015-01-28 12:31:12 +01:00
host.h mmc: start removing enable / disable API 2012-03-27 12:20:03 -04:00
Kconfig mmc: core: Use MMC_UNSAFE_RESUME as default behavior 2014-02-13 22:58:15 -05:00
Makefile mmc: pwrseq: Initial support for the simple MMC power sequence provider 2015-01-28 12:32:07 +01:00
mmc_ops.c mmc: core: Make tuning block patterns static 2015-01-19 09:56:24 +01:00
mmc_ops.h mmc: core: Add helper function for EXT_CSD support 2014-11-10 12:40:41 +01:00
mmc.c mmc: Resolve BKOPS compatability issue 2015-01-29 11:15:12 +01:00
pwrseq_simple.c mmc: pwrseq_simple: Add optional reference clock support 2015-01-30 12:10:23 +01:00
pwrseq.c mmc: pwrseq: Initial support for the simple MMC power sequence provider 2015-01-28 12:32:07 +01:00
pwrseq.h mmc: pwrseq: Initial support for the simple MMC power sequence provider 2015-01-28 12:32:07 +01:00
quirks.c mmc: quirks: Fixup debug message 2014-07-09 11:26:03 +02:00
sd_ops.c mmc: sd: warn if card stays busy during init 2014-07-09 11:26:07 +02: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: core: Simplify by adding mmc_execute_tuning() 2015-01-19 09:56:30 +01:00
sd.h mmc: drop the speed mode of card's state 2014-05-12 18:05:53 -04:00
sdio_bus.c mmc: Add SDIO function devicetree subnode parsing 2015-01-19 09:56:26 +01:00
sdio_bus.h
sdio_cis.c mmc: sdio: Change pr_warning to pr_warn_ratelimited 2012-07-22 15:25:48 -04:00
sdio_cis.h
sdio_io.c mmc: sdio: Use multiple scatter/gather list 2012-12-06 13:54:43 -05:00
sdio_irq.c mmc: Convert pr_warning to pr_warn 2014-09-24 10:13:09 +02: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: Simplify by adding mmc_execute_tuning() 2015-01-19 09:56:30 +01:00
slot-gpio.c mmc: slot-gpio: Allow host driver to provide isr for card-detect interrupts 2015-01-19 09:56:29 +01:00
slot-gpio.h mmc: slot-gpio: Make mmc_gpio_alloc() available for MMC core 2015-01-19 09:56:17 +01:00