aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-05-02 15:02:39 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-05-02 15:02:39 -0400
commit58741e8b3603e56c3699550e8bc89cb136329343 (patch)
tree84896f991d3d7cb08d7ae0588f0bba9e2937b681 /drivers/mmc
parent37be4e7809e0581db85387e126ae4da68c3d6286 (diff)
[MMC] PXA and i.MX: don't avoid sending stop command on error
Always send a stop command at the end of a data transfer. If we avoid sending the stop command, some cards remain in data transfer mode, and refuse to accept further read/write commands. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/imxmmc.c2
-rw-r--r--drivers/mmc/pxamci.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mmc/imxmmc.c b/drivers/mmc/imxmmc.c
index 07f36c454bd6..bc271925099a 100644
--- a/drivers/mmc/imxmmc.c
+++ b/drivers/mmc/imxmmc.c
@@ -529,7 +529,7 @@ static int imxmci_data_done(struct imxmci_host *host, unsigned int stat)
529 529
530 data_error = imxmci_finish_data(host, stat); 530 data_error = imxmci_finish_data(host, stat);
531 531
532 if (host->req->stop && (data_error == MMC_ERR_NONE)) { 532 if (host->req->stop) {
533 imxmci_stop_clock(host); 533 imxmci_stop_clock(host);
534 imxmci_start_cmd(host, host->req->stop, 0); 534 imxmci_start_cmd(host, host->req->stop, 0);
535 } else { 535 } else {
diff --git a/drivers/mmc/pxamci.c b/drivers/mmc/pxamci.c
index eb42cb349420..15a5caa0bdeb 100644
--- a/drivers/mmc/pxamci.c
+++ b/drivers/mmc/pxamci.c
@@ -291,7 +291,7 @@ static int pxamci_data_done(struct pxamci_host *host, unsigned int stat)
291 pxamci_disable_irq(host, DATA_TRAN_DONE); 291 pxamci_disable_irq(host, DATA_TRAN_DONE);
292 292
293 host->data = NULL; 293 host->data = NULL;
294 if (host->mrq->stop && data->error == MMC_ERR_NONE) { 294 if (host->mrq->stop) {
295 pxamci_stop_clock(host); 295 pxamci_stop_clock(host);
296 pxamci_start_cmd(host, host->mrq->stop, 0); 296 pxamci_start_cmd(host, host->mrq->stop, 0);
297 } else { 297 } else {