linux/drivers/mmc/core
Chaotian Jing 3bbb0deea6 mmc: core: fix __mmc_switch timeout caused by preempt
there is a time window between __mmc_send_status() and time_afer(),
on some eMMC chip, the timeout_ms is only 10ms, if this thread was
scheduled out during this period, then, even card has already changes
to transfer state by the result of CMD13, this part of code also treat
it to timeout error.
So, need calculate timeout first, then call __mmc_send_status(), if
already timeout and card still in programing state, then treat it to
the real timeout error.

Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2015-12-22 11:32:18 +01:00
..
bus.c mmc: enable MMC/SD/SDIO device to suspend/resume asynchronously 2015-12-22 11:32:16 +01:00
bus.h
core.c mmc: core: Introduce MMC_CAP2_NO_SDIO cap 2015-12-22 11:32:13 +01:00
core.h mmc: fix mmc_{un,}register_pm_notifier prototypes 2015-12-22 11:32:09 +01:00
debugfs.c mmc: core: Remove MMC_CLKGATE 2015-10-26 16:00:09 +01:00
host.c mmc: core: Refactor code to register the MMC PM notifier 2015-12-22 11:32:04 +01:00
host.h mmc: host: Add facility to support re-tuning 2015-06-01 09:06:53 +02:00
Kconfig mmc: core: Remove MMC_CLKGATE 2015-10-26 16:00:09 +01:00
Makefile mmc: pwrseq: add driver for emmc hardware reset 2015-02-04 09:45:09 +01:00
mmc.c mmc: mmc: Fix incorrect use of driver strength switching HS200 and HS400 2015-12-22 11:32:13 +01:00
mmc_ops.c mmc: core: fix __mmc_switch timeout caused by preempt 2015-12-22 11:32:18 +01:00
mmc_ops.h mmc: core: Convert __mmc_switch() into an internal core function 2015-10-26 15:59:54 +01: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: constify mmc_pwrseq_ops structures 2015-12-22 11:32:07 +01:00
pwrseq_emmc.c mmc: pwrseq: constify mmc_pwrseq_ops structures 2015-12-22 11:32:07 +01:00
pwrseq_simple.c mmc: pwrseq: constify mmc_pwrseq_ops structures 2015-12-22 11:32:07 +01:00
quirks.c mmc: core: Remove MMC_CLKGATE 2015-10-26 16:00:09 +01:00
sd.c mmc: core: Make runtime resume default behavior for MMC/SD 2015-12-22 11:32:03 +01: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
sdio.c mmc: sdio: Fix invalid vdd in voltage switch power cycle 2015-12-22 11:32:15 +01: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: 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: core: Remove MMC_CLKGATE 2015-10-26 16:00:09 +01:00
sdio_ops.c mmc: sdio: Use multiple scatter/gather list 2012-12-06 13:54:43 -05:00
sdio_ops.h mmc: Add mmc_is_io_op helper function 2015-10-26 16:00:01 +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