mips: do mips_sync() on sync operations to uncachable memory.
mips24k/mips74k document that we need an explicit SYNC so to order things correctly, even with access to uncachable memory. We were doing calls to SYNC in the cache ops (inv, wbinv) but we weren't doing it for uncachable memory.
This commit is contained in:
parent
941f53b9a9
commit
f2c42f690f
@ -1220,11 +1220,12 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
|
||||
if (STAILQ_FIRST(&map->bpages))
|
||||
_bus_dmamap_sync_bp(dmat, map, op);
|
||||
|
||||
if (dmat->flags & BUS_DMA_COHERENT)
|
||||
return;
|
||||
|
||||
if (map->flags & DMAMAP_UNCACHEABLE)
|
||||
if ((dmat->flags & BUS_DMA_COHERENT) ||
|
||||
(map->flags & DMAMAP_UNCACHEABLE)) {
|
||||
if (op & BUS_DMASYNC_PREWRITE)
|
||||
mips_sync();
|
||||
return;
|
||||
}
|
||||
|
||||
aligned = (map->flags & DMAMAP_CACHE_ALIGNED) ? 1 : 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user