linux-stable/drivers/mmc/core
Ulf Hansson b102595e99 mmc: core: Use a minimum 1600ms timeout when enabling CACHE ctrl
commit e3ae3401aa upstream.

Some eMMCs from Micron have been reported to need ~800 ms timeout, while
enabling the CACHE ctrl after running sudden power failure tests. The
needed timeout is greater than what the card specifies as its generic CMD6
timeout, through the EXT_CSD register, hence the problem.

Normally we would introduce a card quirk to extend the timeout for these
specific Micron cards. However, due to the rather complicated debug process
needed to find out the error, let's simply use a minimum timeout of 1600ms,
the double of what has been reported, for all cards when enabling CACHE
ctrl.

Reported-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Reported-by: Andreas Dannenberg <dannenberg@ti.com>
Reported-by: Faiz Abbas <faiz_abbas@ti.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-29 13:40:15 +01: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
bus.c mmc: core: Do not leave the block driver in a suspended state 2017-12-05 11:24:33 +01:00
bus.h
core.c mmc: avoid removing non-removable hosts during suspend 2018-03-24 11:00:24 +01:00
core.h mmc: fix mmc_{un,}register_pm_notifier prototypes 2015-12-22 11:32:09 +01:00
debugfs.c mmc: debugfs: add HS400 enhanced strobe description 2016-07-25 10:34:06 +02:00
host.c mmc: core: Use device_property_read instead of of_property_read 2017-08-11 08:49:31 -07:00
host.h
mmc.c mmc: core: Use a minimum 1600ms timeout when enabling CACHE ctrl 2018-12-29 13:40:15 +01:00
mmc_ops.c mmc: mmc: fix switch timeout issue caused by jiffies precision 2016-07-25 10:34:09 +02: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: 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
pwrseq_emmc.c mmc: pwrseq: convert to proper platform device 2016-05-02 10:33:30 +02:00
pwrseq_simple.c mmc: pwrseq: Use kmalloc_array instead of stack VLA 2018-08-03 07:55:24 +02:00
quirks.c mmc: core: Disable HPI for certain Hynix eMMC cards 2016-07-25 10:34:12 +02:00
sd.c mmc: core: prepend 0x to OCR entry in sysfs 2017-12-05 11:24:33 +01:00
sd.h
sd_ops.c mmc: remove unnecessary assignment statements before return 2016-02-29 11:02:47 +01:00
sd_ops.h
sdio.c mmc: core: remove redundant memset of sdio_read_cccr 2016-03-17 14:54:41 +01:00
sdio_bus.c mmc: sdio: fix alignment issue in struct sdio_func 2017-10-08 10:26:08 +02:00
sdio_bus.h
sdio_cis.c mmc: sdio: fall back to SDIO 1.0 for broken 1.1 cards 2016-05-16 11:31:27 +02:00
sdio_cis.h
sdio_io.c mmc: sdio: deploy error handling instead of triggering BUG_ON 2016-09-26 21:31:15 +02:00
sdio_irq.c mmc: core: Remove MMC_CLKGATE 2015-10-26 16:00:09 +01:00
sdio_ops.c mmc: sdio: deploy error handling instead of triggering BUG_ON 2016-09-26 21:31:15 +02:00
sdio_ops.h mmc: Add mmc_is_io_op helper function 2015-10-26 16:00:01 +01:00
slot-gpio.c
slot-gpio.h