diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2006-05-02 15:02:39 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-05-02 15:02:39 -0400 |
commit | 58741e8b3603e56c3699550e8bc89cb136329343 (patch) | |
tree | 84896f991d3d7cb08d7ae0588f0bba9e2937b681 | |
parent | 37be4e7809e0581db85387e126ae4da68c3d6286 (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>
-rw-r--r-- | drivers/mmc/imxmmc.c | 2 | ||||
-rw-r--r-- | drivers/mmc/pxamci.c | 2 |
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 { |