linux/drivers/mmc/core
Chaotian Jing 031277d4d3 mmc: core: fix dead loop of mmc_retune
When get a CRC error, start the mmc_retune, it will issue CMD19/CMD21
to do tune, assume there were 10 clock phase need to try, phase 0 to
phase 6 is ok, phase 7 to phase 9 is NG, we try it from 0 to 9, so
the last CMD19/CMD21 will get CRC error, host->need_retune was set and
cause mmc_retune was called, then dead loop of mmc_retune

Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Fixes: bd11e8bd03 ("mmc: core: Flag re-tuning is needed on CRC errors")
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2015-09-30 14:54:22 +02:00
..
Kconfig mmc: core: Use MMC_UNSAFE_RESUME as default behavior 2014-02-13 22:58:15 -05:00
Makefile mmc: pwrseq: add driver for emmc hardware reset 2015-02-04 09:45:09 +01:00
bus.c Revert "mmc: core: Convert mmc_driver to device_driver" 2015-04-17 11:48:01 +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: core: fix dead loop of mmc_retune 2015-09-30 14:54:22 +02:00
core.h mmc: core: Factor out common code in drive strength selection 2015-06-01 09:07:12 +02: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: Don't return an error for CD/WP GPIOs when GPIOLIB is unset 2015-09-29 12:17:03 +02:00
host.h mmc: host: Add facility to support re-tuning 2015-06-01 09:06:53 +02:00
mmc.c mmc: core: Remove redundant ->power_restore() callback for MMC 2015-06-04 10:03:51 +02:00
mmc_ops.c mmc: core: Separate out the mmc_switch status check so it can be re-used 2015-06-01 09:06:56 +02:00
mmc_ops.h mmc: core: Separate out the mmc_switch status check so it can be re-used 2015-06-01 09:06:56 +02:00
pwrseq.c mmc: pwrseq: Fix error code propagation in mmc_pwrseq_simple_alloc() 2015-04-17 10:17:19 +02:00
pwrseq.h mmc: pwrseq: simplify alloc/free hooks 2015-03-23 14:13:42 +01:00
pwrseq_emmc.c mmc: pwrseq: simplify alloc/free hooks 2015-03-23 14:13:42 +01:00
pwrseq_simple.c mmc: pwrseq: simplify alloc/free hooks 2015-03-23 14:13:42 +01:00
quirks.c mmc: quirks: Fixup debug message 2014-07-09 11:26:03 +02:00
sd.c mmc: core: Remove redundant ->power_restore() callback for SD 2015-06-04 10:03:51 +02:00
sd.h mmc: drop the speed mode of card's state 2014-05-12 18:05:53 -04: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
sdio.c mmc: core: Record card drive strength 2015-06-01 09:07:13 +02:00
sdio_bus.c mmc: core: Attach PM domain prior probing of SDIO func driver 2015-06-04 10:03:51 +02: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
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