Parcourir la source

[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>
Russell King il y a 19 ans
Parent
commit
58741e8b36
2 fichiers modifiés avec 2 ajouts et 2 suppressions
  1. 1 1
      drivers/mmc/imxmmc.c
  2. 1 1
      drivers/mmc/pxamci.c

+ 1 - 1
drivers/mmc/imxmmc.c

@@ -529,7 +529,7 @@ static int imxmci_data_done(struct imxmci_host *host, unsigned int stat)
 
 	data_error = imxmci_finish_data(host, stat);
 
-	if (host->req->stop && (data_error == MMC_ERR_NONE)) {
+	if (host->req->stop) {
 		imxmci_stop_clock(host);
 		imxmci_start_cmd(host, host->req->stop, 0);
 	} else {

+ 1 - 1
drivers/mmc/pxamci.c

@@ -291,7 +291,7 @@ static int pxamci_data_done(struct pxamci_host *host, unsigned int stat)
 	pxamci_disable_irq(host, DATA_TRAN_DONE);
 
 	host->data = NULL;
-	if (host->mrq->stop && data->error == MMC_ERR_NONE) {
+	if (host->mrq->stop) {
 		pxamci_stop_clock(host);
 		pxamci_start_cmd(host, host->mrq->stop, 0);
 	} else {