diff options
| author | Andrew Turner <andrew@FreeBSD.org> | 2016-05-13 15:15:54 +0000 |
|---|---|---|
| committer | Andrew Turner <andrew@FreeBSD.org> | 2016-05-13 15:15:54 +0000 |
| commit | f3ad8ea007c3a9474a767a77cfaf3c53923b51d6 (patch) | |
| tree | 4c31cb11b03b21bf83ab1a0d8abc0672392352aa /sys/dev/mmc | |
| parent | 2474dccf1ac74015e036e414760fa22c14f0eb4a (diff) | |
Notes
Diffstat (limited to 'sys/dev/mmc')
| -rw-r--r-- | sys/dev/mmc/host/dwmmc.c | 7 |
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); |
