diff options
author | Madhusudhan Chikkature <[email protected]> | 2010-04-06 14:34:49 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2010-04-07 08:38:03 -0700 |
commit | cdeebaddb7f97298c73df4d43d31e164fc8aa0e4 (patch) | |
tree | 5e1c873e05299743b5df3f48da2427246f635c58 | |
parent | 2a481800caf78f4750cc673c8baed12b5d703ff6 (diff) |
omap hsmmc: fix a bug in card remove scenario
The reset of data lines when the card is removed from the cage results in
a failure.The failure is seen if the card is removed from the cage when TC
is pending after a CMD with data received CC.The reset logic leaves the
controller in a state where niether a TC is received nor DTO.
The rest code can be safely removed here since it is taken care in the IRQ
handler.
Signed-off-by: Madhusudhan Chikkature <[email protected]>
Cc: Adrian Hunter <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | drivers/mmc/host/omap_hsmmc.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 83f0affadcae..e9caf694c59e 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1179,15 +1179,10 @@ static void omap_hsmmc_detect(struct work_struct *work) carddetect = -ENOSYS; } - if (carddetect) { + if (carddetect) mmc_detect_change(host->mmc, (HZ * 200) / 1000); - } else { - mmc_host_enable(host->mmc); - omap_hsmmc_reset_controller_fsm(host, SRD); - mmc_host_lazy_disable(host->mmc); - + else mmc_detect_change(host->mmc, (HZ * 50) / 1000); - } } /* |