aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMadhusudhan Chikkature <[email protected]>2010-04-06 14:34:49 -0700
committerLinus Torvalds <[email protected]>2010-04-07 08:38:03 -0700
commitcdeebaddb7f97298c73df4d43d31e164fc8aa0e4 (patch)
tree5e1c873e05299743b5df3f48da2427246f635c58
parent2a481800caf78f4750cc673c8baed12b5d703ff6 (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.c9
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);
- }
}
/*