summaryrefslogtreecommitdiff
path: root/sys/dev/mmc
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2016-05-13 15:15:54 +0000
committerAndrew Turner <andrew@FreeBSD.org>2016-05-13 15:15:54 +0000
commitf3ad8ea007c3a9474a767a77cfaf3c53923b51d6 (patch)
tree4c31cb11b03b21bf83ab1a0d8abc0672392352aa /sys/dev/mmc
parent2474dccf1ac74015e036e414760fa22c14f0eb4a (diff)
Notes
Diffstat (limited to 'sys/dev/mmc')
-rw-r--r--sys/dev/mmc/host/dwmmc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/mmc/host/dwmmc.c b/sys/dev/mmc/host/dwmmc.c
index f96eff6c6eaa..fe08fe96fe8b 100644
--- a/sys/dev/mmc/host/dwmmc.c
+++ b/sys/dev/mmc/host/dwmmc.c
@@ -722,6 +722,9 @@ dma_done(struct dwmmc_softc *sc, struct mmc_command *cmd)
bus_dmamap_sync(sc->buf_tag, sc->buf_map,
BUS_DMASYNC_POSTREAD);
+ bus_dmamap_sync(sc->desc_tag, sc->desc_map,
+ BUS_DMASYNC_POSTWRITE);
+
bus_dmamap_unload(sc->buf_tag, sc->buf_map);
return (0);
@@ -766,6 +769,10 @@ dma_prepare(struct dwmmc_softc *sc, struct mmc_command *cmd)
if (err != 0)
panic("dmamap_load failed\n");
+ /* Ensure the device can see the desc */
+ bus_dmamap_sync(sc->desc_tag, sc->desc_map,
+ BUS_DMASYNC_PREWRITE);
+
if (data->flags & MMC_DATA_WRITE)
bus_dmamap_sync(sc->buf_tag, sc->buf_map,
BUS_DMASYNC_PREWRITE);