svn commit: r290219 - head/sys/mips/mips
Adrian Chadd
adrian at freebsd.org
Sat Oct 31 00:31:38 UTC 2015
patch from: ian
sorry ian!
-a
On 30 October 2015 at 17:29, Adrian Chadd <adrian at freebsd.org> wrote:
> Author: adrian
> Date: Sat Oct 31 00:29:26 2015
> New Revision: 290219
> URL: https://svnweb.freebsd.org/changeset/base/290219
>
> Log:
> 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.
>
> Modified:
> head/sys/mips/mips/busdma_machdep.c
>
> Modified: head/sys/mips/mips/busdma_machdep.c
> ==============================================================================
> --- head/sys/mips/mips/busdma_machdep.c Sat Oct 31 00:04:44 2015 (r290218)
> +++ head/sys/mips/mips/busdma_machdep.c Sat Oct 31 00:29:26 2015 (r290219)
> @@ -1220,11 +1220,12 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus
> 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;
>
>
More information about the svn-src-all
mailing list