summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorAlbert ARIBAUD <albert.u.boot@aribaud.net>2012-09-21 00:26:19 +0200
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2012-09-21 00:26:19 +0200
commitd193c1b6eb05041c94ad9aacd8c94189d1dbc5f8 (patch)
treec08012d3c427142364bca40e042659b3a819c60a /drivers/mmc
parent651eb7322407173d5f1ac5a149e381a4044858f4 (diff)
parent1d9b033269263a69f7402f508c17b242fc7fea43 (diff)
downloadu-boot-imx-d193c1b6eb05041c94ad9aacd8c94189d1dbc5f8.zip
u-boot-imx-d193c1b6eb05041c94ad9aacd8c94189d1dbc5f8.tar.gz
u-boot-imx-d193c1b6eb05041c94ad9aacd8c94189d1dbc5f8.tar.bz2
Merge remote-tracking branch 'u-boot-imx/master'
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/mxsmmc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c
index 9a98c6b..c80b41b 100644
--- a/drivers/mmc/mxsmmc.c
+++ b/drivers/mmc/mxsmmc.c
@@ -119,6 +119,10 @@ static int mxsmmc_send_cmd_dma(struct mxsmmc_priv *priv, struct mmc_data *data)
(uint32_t)(priv->desc->cmd.address + cache_data_count));
}
+ /* Invalidate the area, so no writeback into the RAM races with DMA */
+ invalidate_dcache_range((uint32_t)priv->desc->cmd.address,
+ (uint32_t)(priv->desc->cmd.address + cache_data_count));
+
priv->desc->cmd.data |= MXS_DMA_DESC_IRQ | MXS_DMA_DESC_DEC_SEM |
(data_count << MXS_DMA_DESC_BYTES_OFFSET);