mmc: Tegra: Fix timeout issue seen on certain eMMC parts
authorMarcel Ziswiler <marcel@ziswiler.com>
Fri, 3 Oct 2014 23:48:53 +0000 (01:48 +0200)
committerTom Warren <twarren@nvidia.com>
Wed, 22 Oct 2014 16:30:54 +0000 (09:30 -0700)
commit09fb73611ff8c247f7196a8e4f957d8696930b69
tree9b9128098d390ba27d640c5ba8d86b845df0b2a0
parent4270d5afed2e815b8c8dd917a8083644b0ccdede
mmc: Tegra: Fix timeout issue seen on certain eMMC parts

During rigorous testing of our latest update infrastructure I came
across quite consistent timeouts on certain eMMC parts (e.g. Hynix
H26M21001ECR) when writing big (e.g. in excess of 400 MB) file system
images:

MMC write: dev # 0, block # 40960, count 944128 ...
 mmc_send_cmd_bounced: MMC Timeout
    Interrupt status        0x00000001
    Interrupt status enable 0xdfff003b
    Interrupt signal enable 0xdfff0002
    Present status          0x01870106
mmc write failed

Comparing the various data sheets I came across the following timeout
specification:

Secure Erase/TRIM Timeout=300ms*2*10=6000ms

Unfortunately empirical testing still failed albeit much more rarely.
Increasing the timeout to 8000ms made it finally disappear entirely.
This patch allows us writing various eMMC parts without seeing any
further issues.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
drivers/mmc/tegra_mmc.c