omap_hsmmc: recover from transfer failures
authorJean Pihet <jpihet@mvista.com>
Wed, 11 Feb 2009 21:11:39 +0000 (13:11 -0800)
committerPierre Ossman <drzeus@drzeus.cx>
Wed, 18 Feb 2009 21:10:49 +0000 (22:10 +0100)
commitc232f457e409b34417166596ea3daf298ace95c9
treef0ab268076cfd4ba680b707285263e6794541781
parenteb25082657be3e7639e349fc926afdcbb0a4dc65
omap_hsmmc: recover from transfer failures

Timeouts during a command that has a data phase can result in the next
command issued after the command that failed not being processed, i.e.  no
interrupt ever occurs to indicate the command has completed.  This failure
can result in a deadlock.

This patch resets the data state machine to clear the error in case of a
command timeout.

Tested on OMAP3430 chip and intensive MMC/SD device removal while
transferring data.

Signed-off-by: Andy Lowe <alowe@mvista.com>
Signed-off-by: Jean Pihet <jpihet@mvista.com>
Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/host/omap_hsmmc.c