Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/arch/arm/arm32/bus_dma.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/arch/arm/arm32/bus_dma.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.115 retrieving revision 1.115.2.1 diff -u -p -r1.115 -r1.115.2.1 --- src/sys/arch/arm/arm32/bus_dma.c 2019/06/14 09:09:12 1.115 +++ src/sys/arch/arm/arm32/bus_dma.c 2019/09/24 02:52:09 1.115.2.1 @@ -1,4 +1,4 @@ -/* $NetBSD: bus_dma.c,v 1.115 2019/06/14 09:09:12 skrll Exp $ */ +/* $NetBSD: bus_dma.c,v 1.115.2.1 2019/09/24 02:52:09 martin Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ #include "opt_cputypes.h" #include -__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.115 2019/06/14 09:09:12 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.115.2.1 2019/09/24 02:52:09 martin Exp $"); #include #include @@ -750,8 +750,10 @@ _bus_dmamap_load_raw(bus_dma_tag_t t, bu sgsize = MIN(ds->ds_len, size); if (sgsize == 0) continue; + const bool coherent = + (ds->_ds_flags & _BUS_DMAMAP_COHERENT) != 0; error = _bus_dmamap_load_paddr(t, map, ds->ds_addr, - sgsize, false); + sgsize, coherent); if (error != 0) break; size -= sgsize; @@ -766,6 +768,9 @@ _bus_dmamap_load_raw(bus_dma_tag_t t, bu /* XXX TBD bounce */ map->dm_mapsize = size0; + map->_dm_origbuf = NULL; + map->_dm_buftype = _BUS_DMA_BUFTYPE_RAW; + map->_dm_vmspace = NULL; return 0; } @@ -1165,6 +1170,7 @@ _bus_dmamap_sync(bus_dma_tag_t t, bus_dm switch (buftype) { case _BUS_DMA_BUFTYPE_LINEAR: + case _BUS_DMA_BUFTYPE_RAW: _bus_dmamap_sync_linear(t, map, offset, len, ops); break; @@ -1176,10 +1182,6 @@ _bus_dmamap_sync(bus_dma_tag_t t, bus_dm _bus_dmamap_sync_uio(t, map, offset, len, ops); break; - case _BUS_DMA_BUFTYPE_RAW: - panic("_bus_dmamap_sync: _BUS_DMA_BUFTYPE_RAW"); - break; - case _BUS_DMA_BUFTYPE_INVALID: panic("_bus_dmamap_sync: _BUS_DMA_BUFTYPE_INVALID"); break;