diff options
author | Madhusudhan Chikkature <madhu.cr@ti.com> | 2010-04-06 17:34:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-07 11:38:03 -0400 |
commit | cdeebaddb7f97298c73df4d43d31e164fc8aa0e4 (patch) | |
tree | 5e1c873e05299743b5df3f48da2427246f635c58 /drivers/mmc | |
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 <madhu.cr@ti.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/mmc')
-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) | |||
1179 | carddetect = -ENOSYS; | 1179 | carddetect = -ENOSYS; |
1180 | } | 1180 | } |
1181 | 1181 | ||
1182 | if (carddetect) { | 1182 | if (carddetect) |
1183 | mmc_detect_change(host->mmc, (HZ * 200) / 1000); | 1183 | mmc_detect_change(host->mmc, (HZ * 200) / 1000); |
1184 | } else { | 1184 | else |
1185 | mmc_host_enable(host->mmc); | ||
1186 | omap_hsmmc_reset_controller_fsm(host, SRD); | ||
1187 | mmc_host_lazy_disable(host->mmc); | ||
1188 | |||
1189 | mmc_detect_change(host->mmc, (HZ * 50) / 1000); | 1185 | mmc_detect_change(host->mmc, (HZ * 50) / 1000); |
1190 | } | ||
1191 | } | 1186 | } |
1192 | 1187 | ||
1193 | /* | 1188 | /* |