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.
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;