[U-Boot] [PATCH] mmc: fsl_esdhc: increase data transaction timeout to 500ms
york sun
york.sun at nxp.com
Thu Jan 14 19:09:36 CET 2016
On 12/29/2015 10:27 PM, Yangbo Lu wrote:
> The MMC spec says "It is strongly recommended for hosts to implement
> more than 500ms timeout value even if the card indicates the 250ms
> maximum busy length." Even the previous value of 300ms is known to
> be insufficient for some cards. So, increase the timeout to 500ms.
>
> Signed-off-by: Yangbo Lu <yangbo.lu at nxp.com>
> ---
> drivers/mmc/fsl_esdhc.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> index c5054d6..12820cf 100644
> --- a/drivers/mmc/fsl_esdhc.c
> +++ b/drivers/mmc/fsl_esdhc.c
> @@ -252,8 +252,15 @@ static int esdhc_setup_data(struct mmc *mmc, struct mmc_data *data)
> * Rounding up to next power of 2
> * => timeout + 13 = log2(mmc->clock/4) + 1
> * => timeout + 13 = fls(mmc->clock/4)
> + *
> + * However, the MMC spec "It is strongly recommended for hosts to
> + * implement more than 500ms timeout value even if the card
> + * indicates the 250ms maximum busy length." Even the previous
> + * value of 300ms is known to be insufficient for some cards.
> + * So, we use
> + * => timeout + 13 = fls(mmc->clock/2)
> */
> - timeout = fls(mmc->clock/4);
> + timeout = fls(mmc->clock/2);
> timeout -= 13;
>
> if (timeout > 14)
>
Pantelis,
With your ack, I can take this in, unless you want to merge it.
York
More information about the U-Boot
mailing list