Module Name:    src
Committed By:   macallan
Date:           Mon Feb  4 13:26:20 UTC 2013

Modified Files:
        src/sys/arch/arm/arm32: bus_dma.c

Log Message:
support BUS_DMA_PREFETCHABLE in bus_dmamem_mmap()


To generate a diff of this commit:
cvs rdiff -u -r1.72 -r1.73 src/sys/arch/arm/arm32/bus_dma.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/arm32/bus_dma.c
diff -u src/sys/arch/arm/arm32/bus_dma.c:1.72 src/sys/arch/arm/arm32/bus_dma.c:1.73
--- src/sys/arch/arm/arm32/bus_dma.c:1.72	Mon Jan 28 08:03:13 2013
+++ src/sys/arch/arm/arm32/bus_dma.c	Mon Feb  4 13:26:19 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_dma.c,v 1.72 2013/01/28 08:03:13 skrll Exp $	*/
+/*	$NetBSD: bus_dma.c,v 1.73 2013/02/04 13:26:19 macallan Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
 #define _ARM32_BUS_DMA_PRIVATE
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.72 2013/01/28 08:03:13 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.73 2013/02/04 13:26:19 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1354,6 +1354,7 @@ paddr_t
 _bus_dmamem_mmap(bus_dma_tag_t t, bus_dma_segment_t *segs, int nsegs,
     off_t off, int prot, int flags)
 {
+	paddr_t map_flags;
 	int i;
 
 	for (i = 0; i < nsegs; i++) {
@@ -1371,7 +1372,12 @@ _bus_dmamem_mmap(bus_dma_tag_t t, bus_dm
 			continue;
 		}
 
-		return (arm_btop((u_long)segs[i].ds_addr + off));
+		map_flags = 0;
+		if (flags & BUS_DMA_PREFETCHABLE)
+			map_flags |= ARM32_MMAP_WRITECOMBINE;
+
+		return (arm_btop((u_long)segs[i].ds_addr + off) | map_flags);
+		
 	}
 
 	/* Page not found. */

Reply via email to