Files
kernel-tenderloin-3.0/drivers/mmc
Sujit Reddy Thumma 521cdcead0 mmc: msm_sdcc: Send CMD12 even if r/w command has errors
In SD/eMMC cards read/write multi block commands (CMD18/CMD25)
cause state transition from Transfer state to Data/Receive
state. If there are errors in recieving the response for
these commands the driver doesn't send CMD12 to stop the
transaction and hence the card forever be in Data/Rcv
state until further CMD7 or CMD12 is issued. Fix this by
sending  CMD12 (STOP_TRANSMISSION) to change the state back to
transfer mode aborting data transfers.

Note: With current r/w command response it is impossible to
determine if the card has actually transitioned to Data/Rcv
state since the actual card status is reflected at execution
time. Also, there may be errors in "sending" CMD18/25 itself.
Sending CMD12 in this case doesn't cause any harm except one
more command timeout error which is non-fatal.

Change-Id: I1e298260d39cfac796113a4276652626c4011fc3
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
2012-01-02 04:26:02 -07:00
..
2011-10-03 09:57:10 -07:00