mmc: eSDHC: Recover from ADMA errors
authorHaijun Zhang <Haijun.Zhang@freescale.com>
Tue, 4 Dec 2012 02:41:28 +0000 (10:41 +0800)
committerChris Ball <cjb@laptop.org>
Thu, 6 Dec 2012 18:55:13 +0000 (13:55 -0500)
commita4071fbbb9edbc5a24985b2f64ed45f35b90dbeb
treeb4aed64d9190298577ead540d5b121603b15eadd
parentb2f7cb45c0ac0852b4b0ba938388ab24c91d6b2d
mmc: eSDHC: Recover from ADMA errors

A-003500: False ADMA Error might be reported when ADMA is used for
multiple block read command with Stop at Block Gap. If PROCTL[SABGREQ]
is set when the particular block's data is received by the System side
logic before entire block (with CRC) data is received by the SD side
logic, and also if ADMA descriptor line is fetched at the same time,
then DMA engine might report false ADMA error. eSDHC might not be able
to Continue (PROCTL[CREQ]=1) after Stop at Block Gap.
This issue will impact the eSDHC IP VVN2.3.

Signed-off-by: Haijun Zhang <Haijun.Zhang@freescale.com>
Signed-off-by: Jerry Huang <Chang-Ming.Huang@freescale.com>
Acked-by: Anton Vorontsov <cbouatmailru@gmail.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/sdhci-of-esdhc.c
drivers/mmc/host/sdhci.c
drivers/mmc/host/sdhci.h