summaryrefslogtreecommitdiffstats
path: root/drivers/mci/pxamci.c
diff options
context:
space:
mode:
authorRobert Jarzmik <robert.jarzmik@free.fr>2012-04-16 21:47:16 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-04-17 22:02:54 +0200
commitb1109600d403ee05060ab2c8294b7a9aba34d266 (patch)
tree4ae108e45e0646aef5f99c767333e60740cf6fd7 /drivers/mci/pxamci.c
parent0f0d40217f83596b93ff12cdb589931f8d9c3fa4 (diff)
downloadbarebox-b1109600d403ee05060ab2c8294b7a9aba34d266.tar.gz
barebox-b1109600d403ee05060ab2c8294b7a9aba34d266.tar.xz
mci: pxamci fix CMD12 handling
The pxamci requires a bit to be set in the command control register when a CMD12 is sent. Set it, as required in the PXA Developer Manuel, chapter "Stop Data Transmission Command (CMD12 or IO/Abort with CMD52)". Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mci/pxamci.c')
-rw-r--r--drivers/mci/pxamci.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mci/pxamci.c b/drivers/mci/pxamci.c
index f251d75f4e..c51fb771a0 100644
--- a/drivers/mci/pxamci.c
+++ b/drivers/mci/pxamci.c
@@ -188,6 +188,9 @@ static void pxamci_start_cmd(struct pxamci_host *host, struct mci_cmd *cmd,
break;
}
+ if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION)
+ cmdat |= CMDAT_STOP_TRAN;
+
mmc_writel(cmd->cmdidx, MMC_CMD);
mmc_writel(cmd->cmdarg >> 16, MMC_ARGH);
mmc_writel(cmd->cmdarg & 0xffff, MMC_ARGL);