linux/drivers/mmc/core
Dong Aisheng e51534c806 mmc: core: fix using wrong io voltage if mmc_select_hs200 fails
Currently MMC core will keep going if HS200/HS timing switch failed
with -EBADMSG error by the assumption that the old timing is still valid.

However, for mmc_select_hs200 case, the signal voltage may have already
been switched. If the timing switch failed, we should fall back to
the old voltage in case the card is continue run with legacy timing.

If fall back signal voltage failed, we explicitly report an EIO error
to force retry during the next power cycle.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2016-05-10 10:37:01 +02:00
..
bus.c mmc: enable MMC/SD/SDIO device to suspend/resume asynchronously 2015-12-22 11:32:16 +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: Do regular power cycle when lacking eMMC HW reset support 2016-05-02 10:33:24 +02:00
core.h mmc: fix mmc_{un,}register_pm_notifier prototypes 2015-12-22 11:32:09 +01:00
debugfs.c mmc: debugfs: Add a restriction to mmc debugfs clock setting 2016-02-29 11:02:49 +01:00
host.c mmc: core: Convert from IDR to IDA for host indexes 2016-05-02 10:33:36 +02:00
host.h mmc: host: Add facility to support re-tuning 2015-06-01 09:06:53 +02:00
Kconfig mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
Makefile mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
mmc_ops.c mmc: remove unnecessary assignment statements before return 2016-02-29 11:02:47 +01:00
mmc_ops.h mmc: core: Convert __mmc_switch() into an internal core function 2015-10-26 15:59:54 +01:00
mmc.c mmc: core: fix using wrong io voltage if mmc_select_hs200 fails 2016-05-10 10:37:01 +02:00
pwrseq_emmc.c mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
pwrseq_simple.c mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
pwrseq.c mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
pwrseq.h mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
quirks.c mmc: core: Remove MMC_CLKGATE 2015-10-26 16:00:09 +01:00
sd_ops.c mmc: remove unnecessary assignment statements before return 2016-02-29 11:02:47 +01: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: remove redundant memset of mmc_decode_cid 2016-03-17 14:54:41 +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: enable MMC/SD/SDIO device to suspend/resume asynchronously 2015-12-22 11:32:16 +01:00
sdio_bus.h
sdio_cis.c mmc: sdio_cis: fix unknown tuple for CISTPL_SDIO_STD 2016-01-20 12:39:24 +01: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: core: Remove MMC_CLKGATE 2015-10-26 16:00:09 +01:00
sdio_ops.c mmc: remove unnecessary assignment statements before return 2016-02-29 11:02:47 +01:00
sdio_ops.h mmc: Add mmc_is_io_op helper function 2015-10-26 16:00:01 +01:00
sdio.c mmc: core: remove redundant memset of sdio_read_cccr 2016-03-17 14:54:41 +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