mmc: sdhci-esdhc-imx: fix multiblock reads on i.MX53
authorLucas Stach <l.stach@pengutronix.de>
Fri, 15 Mar 2013 08:49:26 +0000 (09:49 +0100)
committerChris Ball <cjb@laptop.org>
Sun, 26 May 2013 17:13:31 +0000 (13:13 -0400)
commit361b8482026c926997b1d3d5a045bc9f5bc02b16
tree179f823862e459a99e1317a3e200dba7a0500d64
parentf6825748bdbe381cfffe2dc13ca0b73050428fac
mmc: sdhci-esdhc-imx: fix multiblock reads on i.MX53

The eSDHC controller on the i.MX53 needs an additional, non spec
compliant CMD12 after a multiblock read with a predefined number of
blocks. Otherwise the internal state machine won't go back to the
idle state.

This commit effectively reverts 5b6b0ad6 (mmc: sdhci-esdhc-imx:
fix for mmc cards on i.MX5), which fixed part of the problem by
making multiblock reads work, however this fix was not sufficient
when multi- and singleblock reads got intermixed.

This implements the recommended workaround (Freescale i.MX Reference
Manual, section 29.6.8 "Multi-block Read") by manually sending a
CMD12 with the RSPTYP bits cleared.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/sdhci-esdhc-imx.c