summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorthorpej <thorpej@NetBSD.org>1998-02-04 05:12:46 +0000
committerthorpej <thorpej@NetBSD.org>1998-02-04 05:12:46 +0000
commit8abe76d2f09ed46db2694080253e1623501ac3f7 (patch)
tree16a9f663c517aab7299fd828dd585608afccb293 /sys
parent99cc8482d1b6d02bcdee248c019e5e8b3767e1a1 (diff)
Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/alpha/common/bus_dma.c8
-rw-r--r--sys/arch/alpha/include/bus.h11
-rw-r--r--sys/arch/arm32/include/bus.h11
-rw-r--r--sys/arch/bebox/bebox/bus_dma.c6
-rw-r--r--sys/arch/bebox/include/bus.h11
-rw-r--r--sys/arch/bebox/isa/isadma.c12
-rw-r--r--sys/arch/bebox/isa/isadma_machdep.c27
-rw-r--r--sys/arch/i386/i386/machdep.c6
-rw-r--r--sys/arch/i386/include/bus.h11
-rw-r--r--sys/arch/i386/isa/isa_machdep.c27
-rw-r--r--sys/arch/sparc/dev/vme_machdep.c16
-rw-r--r--sys/arch/sparc/include/bus.h11
-rw-r--r--sys/arch/sparc/sparc/machdep.c10
-rw-r--r--sys/dev/eisa/ahb.c10
-rw-r--r--sys/dev/ic/aha.c10
-rw-r--r--sys/dev/ic/bha.c10
-rw-r--r--sys/dev/ic/uha.c10
-rw-r--r--sys/dev/isa/isadma.c12
-rw-r--r--sys/dev/isa/wds.c10
-rw-r--r--sys/dev/pci/if_fxp.c13
-rw-r--r--sys/dev/pci/isp_pci.c8
-rw-r--r--sys/dev/vme/xd.c12
-rw-r--r--sys/dev/vme/xy.c12
23 files changed, 169 insertions, 105 deletions
diff --git a/sys/arch/alpha/common/bus_dma.c b/sys/arch/alpha/common/bus_dma.c
index 60d8f94bdd6..45c528ea73b 100644
--- a/sys/arch/alpha/common/bus_dma.c
+++ b/sys/arch/alpha/common/bus_dma.c
@@ -1,4 +1,4 @@
-/* $NetBSD: bus_dma.c,v 1.11 1998/02/04 01:57:27 thorpej Exp $ */
+/* $NetBSD: bus_dma.c,v 1.12 1998/02/04 05:12:46 thorpej Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -39,7 +39,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.11 1998/02/04 01:57:27 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.12 1998/02/04 05:12:46 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -346,9 +346,11 @@ _bus_dmamap_unload(t, map)
* by chipset-specific DMA map synchronization functions.
*/
void
-_bus_dmamap_sync(t, map, ops)
+_bus_dmamap_sync(t, map, offset, len, ops)
bus_dma_tag_t t;
bus_dmamap_t map;
+ bus_addr_t offset;
+ bus_size_t len;
int ops;
{
diff --git a/sys/arch/alpha/include/bus.h b/sys/arch/alpha/include/bus.h
index 70bbbb7f1f3..0c30e8da109 100644
--- a/sys/arch/alpha/include/bus.h
+++ b/sys/arch/alpha/include/bus.h
@@ -1,4 +1,4 @@
-/* $NetBSD: bus.h,v 1.18 1998/02/04 01:57:28 thorpej Exp $ */
+/* $NetBSD: bus.h,v 1.19 1998/02/04 05:12:47 thorpej Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -480,7 +480,7 @@ struct alpha_bus_dma_tag {
bus_dma_segment_t *, int, bus_size_t, int));
void (*_dmamap_unload) __P((bus_dma_tag_t, bus_dmamap_t));
void (*_dmamap_sync) __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
/*
* DMA memory utility functions.
@@ -513,9 +513,9 @@ struct alpha_bus_dma_tag {
(*(t)->_dmamap_load_raw)((t), (m), (sg), (n), (s), (f))
#define bus_dmamap_unload(t, p) \
(*(t)->_dmamap_unload)((t), (p))
-#define bus_dmamap_sync(t, p, o) \
+#define bus_dmamap_sync(t, p, o, l, ops) \
(void)((t)->_dmamap_sync ? \
- (*(t)->_dmamap_sync)((t), (p), (o)) : (void)0)
+ (*(t)->_dmamap_sync)((t), (p), (o), (l), (ops)) : (void)0)
#define bus_dmamem_alloc(t, s, a, b, sg, n, r, f) \
(*(t)->_dmamem_alloc)((t), (s), (a), (b), (sg), (n), (r), (f))
@@ -576,7 +576,8 @@ int _bus_dmamap_load_raw_direct_common __P((bus_dma_tag_t,
int, bus_addr_t));
void _bus_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
-void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, int));
+void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, bus_addr_t,
+ bus_size_t, int));
int _bus_dmamem_alloc __P((bus_dma_tag_t tag, bus_size_t size,
bus_size_t alignment, bus_size_t boundary,
diff --git a/sys/arch/arm32/include/bus.h b/sys/arch/arm32/include/bus.h
index 56f26e28cf5..6d0c9a0ed5d 100644
--- a/sys/arch/arm32/include/bus.h
+++ b/sys/arch/arm32/include/bus.h
@@ -1,4 +1,4 @@
-/* $NetBSD: bus.h,v 1.7 1998/02/04 01:57:29 thorpej Exp $ */
+/* $NetBSD: bus.h,v 1.8 1998/02/04 05:12:48 thorpej Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -647,7 +647,7 @@ struct arm32_bus_dma_tag {
bus_dma_segment_t *, int, bus_size_t, int));
void (*_dmamap_unload) __P((bus_dma_tag_t, bus_dmamap_t));
void (*_dmamap_sync) __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
/*
* DMA memory utility functions.
@@ -677,9 +677,9 @@ struct arm32_bus_dma_tag {
(*(t)->_dmamap_load_raw)((t), (m), (sg), (n), (s), (f))
#define bus_dmamap_unload(t, p) \
(*(t)->_dmamap_unload)((t), (p))
-#define bus_dmamap_sync(t, p, o) \
+#define bus_dmamap_sync(t, p, o, l, ops) \
(void)((t)->_dmamap_sync ? \
- (*(t)->_dmamap_sync)((t), (p), (o)) : (void)0)
+ (*(t)->_dmamap_sync)((t), (p), (o), (l), (ops)) : (void)0)
#define bus_dmamem_alloc(t, s, a, b, sg, n, r, f) \
(*(t)->_dmamem_alloc)((t), (s), (a), (b), (sg), (n), (r), (f))
@@ -732,7 +732,8 @@ int _bus_dmamap_load_uio __P((bus_dma_tag_t, bus_dmamap_t,
int _bus_dmamap_load_raw __P((bus_dma_tag_t, bus_dmamap_t,
bus_dma_segment_t *, int, bus_size_t, int));
void _bus_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
-void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, int));
+void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, bus_addr_t,
+ bus_size_t, int));
int _bus_dmamem_alloc __P((bus_dma_tag_t tag, bus_size_t size,
bus_size_t alignment, bus_size_t boundary,
diff --git a/sys/arch/bebox/bebox/bus_dma.c b/sys/arch/bebox/bebox/bus_dma.c
index 0bdcfeb08d3..105d01c03d2 100644
--- a/sys/arch/bebox/bebox/bus_dma.c
+++ b/sys/arch/bebox/bebox/bus_dma.c
@@ -1,4 +1,4 @@
-/* $NetBSD: bus_dma.c,v 1.6 1998/02/04 01:57:31 thorpej Exp $ */
+/* $NetBSD: bus_dma.c,v 1.7 1998/02/04 05:12:50 thorpej Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -332,9 +332,11 @@ _bus_dmamap_unload(t, map)
* by bus-specific DMA map synchronization functions.
*/
void
-_bus_dmamap_sync(t, map, ops)
+_bus_dmamap_sync(t, map, offset, len, ops)
bus_dma_tag_t t;
bus_dmamap_t map;
+ bus_addr_t offset;
+ bus_size_t len;
int ops;
{
diff --git a/sys/arch/bebox/include/bus.h b/sys/arch/bebox/include/bus.h
index 5332ef39517..e7498986f31 100644
--- a/sys/arch/bebox/include/bus.h
+++ b/sys/arch/bebox/include/bus.h
@@ -1,4 +1,4 @@
-/* $NetBSD: bus.h,v 1.8 1998/02/04 01:57:32 thorpej Exp $ */
+/* $NetBSD: bus.h,v 1.9 1998/02/04 05:12:51 thorpej Exp $ */
/* $OpenBSD: bus.h,v 1.1 1997/10/13 10:53:42 pefo Exp $ */
/*-
@@ -937,7 +937,7 @@ struct bebox_bus_dma_tag {
bus_dma_segment_t *, int, bus_size_t, int));
void (*_dmamap_unload) __P((bus_dma_tag_t, bus_dmamap_t));
void (*_dmamap_sync) __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
/*
* DMA memory utility functions.
@@ -967,9 +967,9 @@ struct bebox_bus_dma_tag {
(*(t)->_dmamap_load_raw)((t), (m), (sg), (n), (s), (f))
#define bus_dmamap_unload(t, p) \
(*(t)->_dmamap_unload)((t), (p))
-#define bus_dmamap_sync(t, p, o) \
+#define bus_dmamap_sync(t, p, o, l, ops) \
(void)((t)->_dmamap_sync ? \
- (*(t)->_dmamap_sync)((t), (p), (o)) : (void)0)
+ (*(t)->_dmamap_sync)((t), (p), (o), (l), (ops)) : (void)0)
#define bus_dmamem_alloc(t, s, a, b, sg, n, r, f) \
(*(t)->_dmamem_alloc)((t), (s), (a), (b), (sg), (n), (r), (f))
@@ -1020,7 +1020,8 @@ int _bus_dmamap_load_uio __P((bus_dma_tag_t, bus_dmamap_t,
int _bus_dmamap_load_raw __P((bus_dma_tag_t, bus_dmamap_t,
bus_dma_segment_t *, int, bus_size_t, int));
void _bus_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
-void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, int));
+void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, bus_addr_t,
+ bus_size_t, int));
int _bus_dmamem_alloc __P((bus_dma_tag_t tag, bus_size_t size,
bus_size_t alignment, bus_size_t boundary,
diff --git a/sys/arch/bebox/isa/isadma.c b/sys/arch/bebox/isa/isadma.c
index 1a6b17485ed..e3e7d112e83 100644
--- a/sys/arch/bebox/isa/isadma.c
+++ b/sys/arch/bebox/isa/isadma.c
@@ -1,7 +1,7 @@
-/* $NetBSD: isadma.c,v 1.1 1997/10/14 06:49:04 sakamoto Exp $ */
+/* $NetBSD: isadma.c,v 1.2 1998/02/04 05:12:52 thorpej Exp $ */
/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -288,10 +288,12 @@ isa_dmastart(isadev, chan, addr, nbytes, p, flags, busdmaflags)
#endif
if (flags & DMAMODE_READ) {
- bus_dmamap_sync(sc->sc_dmat, dmam, BUS_DMASYNC_PREREAD);
+ bus_dmamap_sync(sc->sc_dmat, dmam, 0, dmam->dm_mapsize,
+ BUS_DMASYNC_PREREAD);
sc->sc_dmareads |= (1 << chan);
} else {
- bus_dmamap_sync(sc->sc_dmat, dmam, BUS_DMASYNC_PREWRITE);
+ bus_dmamap_sync(sc->sc_dmat, dmam, 0, dmam->dm_mapsize,
+ BUS_DMASYNC_PREWRITE);
sc->sc_dmareads &= ~(1 << chan);
}
@@ -469,7 +471,7 @@ isa_dmadone(isadev, chan)
printf("%s: isa_dmadone: channel %d not finished\n",
sc->sc_dev.dv_xname, chan);
- bus_dmamap_sync(sc->sc_dmat, dmam,
+ bus_dmamap_sync(sc->sc_dmat, dmam, 0, dmam->dm_mapsize,
(sc->sc_dmareads & (1 << chan)) ? BUS_DMASYNC_POSTREAD :
BUS_DMASYNC_POSTWRITE);
diff --git a/sys/arch/bebox/isa/isadma_machdep.c b/sys/arch/bebox/isa/isadma_machdep.c
index b5fa3a8cd03..b8028fac192 100644
--- a/sys/arch/bebox/isa/isadma_machdep.c
+++ b/sys/arch/bebox/isa/isadma_machdep.c
@@ -1,4 +1,4 @@
-/* $NetBSD: isadma_machdep.c,v 1.4 1998/02/04 01:57:33 thorpej Exp $ */
+/* $NetBSD: isadma_machdep.c,v 1.5 1998/02/04 05:12:52 thorpej Exp $ */
#define ISA_DMA_STATS
@@ -115,7 +115,7 @@ int _isa_bus_dmamap_load_raw __P((bus_dma_tag_t, bus_dmamap_t,
bus_dma_segment_t *, int, bus_size_t, int));
void _isa_bus_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
void _isa_bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
int _isa_bus_dmamem_alloc __P((bus_dma_tag_t, bus_size_t, bus_size_t,
bus_size_t, bus_dma_segment_t *, int, int *, int));
@@ -437,9 +437,11 @@ _isa_bus_dmamap_unload(t, map)
* Synchronize an ISA DMA map.
*/
void
-_isa_bus_dmamap_sync(t, map, ops)
+_isa_bus_dmamap_sync(t, map, offset, len, ops)
bus_dma_tag_t t;
bus_dmamap_t map;
+ bus_addr_t offset;
+ bus_size_t len;
int ops;
{
struct bebox_isa_dma_cookie *cookie = map->_dm_cookie;
@@ -451,6 +453,15 @@ _isa_bus_dmamap_sync(t, map, ops)
(ops & (BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE)) != 0)
panic("_isa_bus_dmamap_sync: mix PRE and POST");
+#ifdef DIAGNOSTIC
+ if ((ops & (BUS_DMASYNC_PREWRITE|BUS_DMASYNC_POSTREAD)) != 0) {
+ if (offset >= map->dm_mapsize)
+ panic("_isa_bus_dmamap_sync: bad offset");
+ if (len == 0 || (offset + len) > map->dm_mapsize)
+ panic("_isa_bus_dmamap_sync: bad length");
+ }
+#endif
+
/*
* Nothing to do for pre-read.
*/
@@ -461,8 +472,8 @@ _isa_bus_dmamap_sync(t, map, ops)
* caller's buffer to the bounce buffer.
*/
if (cookie->id_flags & ID_IS_BOUNCING)
- bcopy(cookie->id_origbuf, cookie->id_bouncebuf,
- cookie->id_origbuflen);
+ bcopy(cookie->id_origbuf + offset,
+ cookie->id_bouncebuf + offset, len);
}
if (ops & BUS_DMASYNC_POSTREAD) {
@@ -471,8 +482,8 @@ _isa_bus_dmamap_sync(t, map, ops)
* bounce buffer to the caller's buffer.
*/
if (cookie->id_flags & ID_IS_BOUNCING)
- bcopy(cookie->id_bouncebuf, cookie->id_origbuf,
- cookie->id_origbuflen);
+ bcopy(cookie->id_bouncebuf + offset,
+ cookie->id_origbuf + offset, len);
}
/*
@@ -481,7 +492,7 @@ _isa_bus_dmamap_sync(t, map, ops)
#if 0
/* This is a noop anyhow, so why bother calling it? */
- _bus_dmamap_sync(t, map, op);
+ _bus_dmamap_sync(t, map, offset, len, ops);
#endif
}
diff --git a/sys/arch/i386/i386/machdep.c b/sys/arch/i386/i386/machdep.c
index e278ffbd040..724596a128f 100644
--- a/sys/arch/i386/i386/machdep.c
+++ b/sys/arch/i386/i386/machdep.c
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.281 1998/02/04 01:57:34 thorpej Exp $ */
+/* $NetBSD: machdep.c,v 1.282 1998/02/04 05:12:54 thorpej Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -2416,9 +2416,11 @@ _bus_dmamap_unload(t, map)
* by bus-specific DMA map synchronization functions.
*/
void
-_bus_dmamap_sync(t, map, ops)
+_bus_dmamap_sync(t, map, offset, len, ops)
bus_dma_tag_t t;
bus_dmamap_t map;
+ bus_addr_t offset;
+ bus_size_t len;
int ops;
{
diff --git a/sys/arch/i386/include/bus.h b/sys/arch/i386/include/bus.h
index 0565a11d124..0c2d8f4b593 100644
--- a/sys/arch/i386/include/bus.h
+++ b/sys/arch/i386/include/bus.h
@@ -1,4 +1,4 @@
-/* $NetBSD: bus.h,v 1.14 1998/02/04 01:57:36 thorpej Exp $ */
+/* $NetBSD: bus.h,v 1.15 1998/02/04 05:12:56 thorpej Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -907,7 +907,7 @@ struct i386_bus_dma_tag {
bus_dma_segment_t *, int, bus_size_t, int));
void (*_dmamap_unload) __P((bus_dma_tag_t, bus_dmamap_t));
void (*_dmamap_sync) __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
/*
* DMA memory utility functions.
@@ -937,9 +937,9 @@ struct i386_bus_dma_tag {
(*(t)->_dmamap_load_raw)((t), (m), (sg), (n), (s), (f))
#define bus_dmamap_unload(t, p) \
(*(t)->_dmamap_unload)((t), (p))
-#define bus_dmamap_sync(t, p, o) \
+#define bus_dmamap_sync(t, p, o, l, ops) \
(void)((t)->_dmamap_sync ? \
- (*(t)->_dmamap_sync)((t), (p), (o)) : (void)0)
+ (*(t)->_dmamap_sync)((t), (p), (o), (l), (ops)) : (void)0)
#define bus_dmamem_alloc(t, s, a, b, sg, n, r, f) \
(*(t)->_dmamem_alloc)((t), (s), (a), (b), (sg), (n), (r), (f))
@@ -990,7 +990,8 @@ int _bus_dmamap_load_uio __P((bus_dma_tag_t, bus_dmamap_t,
int _bus_dmamap_load_raw __P((bus_dma_tag_t, bus_dmamap_t,
bus_dma_segment_t *, int, bus_size_t, int));
void _bus_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
-void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, int));
+void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, bus_addr_t,
+ bus_size_t, int));
int _bus_dmamem_alloc __P((bus_dma_tag_t tag, bus_size_t size,
bus_size_t alignment, bus_size_t boundary,
diff --git a/sys/arch/i386/isa/isa_machdep.c b/sys/arch/i386/isa/isa_machdep.c
index 1b843f600a3..1af3aa2fd7b 100644
--- a/sys/arch/i386/isa/isa_machdep.c
+++ b/sys/arch/i386/isa/isa_machdep.c
@@ -1,4 +1,4 @@
-/* $NetBSD: isa_machdep.c,v 1.27 1998/02/04 01:57:38 thorpej Exp $ */
+/* $NetBSD: isa_machdep.c,v 1.28 1998/02/04 05:12:57 thorpej Exp $ */
#define ISA_DMA_STATS
@@ -127,7 +127,7 @@ int _isa_bus_dmamap_load_raw __P((bus_dma_tag_t, bus_dmamap_t,
bus_dma_segment_t *, int, bus_size_t, int));
void _isa_bus_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
void _isa_bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
int _isa_bus_dmamem_alloc __P((bus_dma_tag_t, bus_size_t, bus_size_t,
bus_size_t, bus_dma_segment_t *, int, int *, int));
@@ -862,9 +862,11 @@ _isa_bus_dmamap_unload(t, map)
* Synchronize an ISA DMA map.
*/
void
-_isa_bus_dmamap_sync(t, map, ops)
+_isa_bus_dmamap_sync(t, map, offset, len, ops)
bus_dma_tag_t t;
bus_dmamap_t map;
+ bus_addr_t offset;
+ bus_size_t len;
int ops;
{
struct i386_isa_dma_cookie *cookie = map->_dm_cookie;
@@ -876,6 +878,15 @@ _isa_bus_dmamap_sync(t, map, ops)
(ops & (BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE)) != 0)
panic("_isa_bus_dmamap_sync: mix PRE and POST");
+#ifdef DIAGNOSTIC
+ if ((ops & (BUS_DMASYNC_PREWRITE|BUS_DMASYNC_POSTREAD)) != 0) {
+ if (offset >= map->dm_mapsize)
+ panic("_isa_bus_dmamap_sync: bad offset");
+ if (len == 0 || (offset + len) > map->dm_mapsize)
+ panic("_isa_bus_dmamap_sync: bad length");
+ }
+#endif
+
/*
* Nothing to do for pre-read.
*/
@@ -886,8 +897,8 @@ _isa_bus_dmamap_sync(t, map, ops)
* caller's buffer to the bounce buffer.
*/
if (cookie->id_flags & ID_IS_BOUNCING)
- bcopy(cookie->id_origbuf, cookie->id_bouncebuf,
- cookie->id_origbuflen);
+ bcopy(cookie->id_origbuf + offset,
+ cookie->id_bouncebuf + offset, len);
}
if (ops & BUS_DMASYNC_POSTREAD) {
@@ -896,8 +907,8 @@ _isa_bus_dmamap_sync(t, map, ops)
* bounce buffer to the caller's buffer.
*/
if (cookie->id_flags & ID_IS_BOUNCING)
- bcopy(cookie->id_bouncebuf, cookie->id_origbuf,
- cookie->id_origbuflen);
+ bcopy(cookie->id_bouncebuf + offset,
+ cookie->id_origbuf + offset, len);
}
/*
@@ -906,7 +917,7 @@ _isa_bus_dmamap_sync(t, map, ops)
#if 0
/* This is a noop anyhow, so why bother calling it? */
- _bus_dmamap_sync(t, map, op);
+ _bus_dmamap_sync(t, map, offset, len, ops);
#endif
}
diff --git a/sys/arch/sparc/dev/vme_machdep.c b/sys/arch/sparc/dev/vme_machdep.c
index b1f03df771f..07dee59499e 100644
--- a/sys/arch/sparc/dev/vme_machdep.c
+++ b/sys/arch/sparc/dev/vme_machdep.c
@@ -1,7 +1,7 @@
-/* $NetBSD: vme_machdep.c,v 1.3 1998/02/04 01:57:40 thorpej Exp $ */
+/* $NetBSD: vme_machdep.c,v 1.4 1998/02/04 05:12:58 thorpej Exp $ */
/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -116,7 +116,7 @@ static int sparc_vme4_dmamap_load __P((bus_dma_tag_t, bus_dmamap_t, void *,
bus_size_t, struct proc *, int));
static void sparc_vme4_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
static void sparc_vme4_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
static int sparc_vme4_dmamem_alloc __P((bus_dma_tag_t, bus_size_t,
bus_size_t, bus_size_t, bus_dma_segment_t *,
@@ -133,7 +133,7 @@ static int sparc_vme4m_dmamap_load __P((bus_dma_tag_t, bus_dmamap_t, void *,
bus_size_t, struct proc *, int));
static void sparc_vme4m_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
static void sparc_vme4m_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
static int sparc_vme4m_dmamem_alloc __P((bus_dma_tag_t, bus_size_t,
bus_size_t, bus_size_t, bus_dma_segment_t *,
@@ -789,9 +789,11 @@ sparc_vme4_dmamem_free(t, segs, nsegs)
}
void
-sparc_vme4_dmamap_sync(t, map, ops)
+sparc_vme4_dmamap_sync(t, map, offset, len, ops)
bus_dma_tag_t t;
bus_dmamap_t map;
+ bus_addr_t offset;
+ bus_size_t len;
int ops;
{
@@ -904,9 +906,11 @@ sparc_vme4m_dmamem_free(t, segs, nsegs)
}
void
-sparc_vme4m_dmamap_sync(t, map, ops)
+sparc_vme4m_dmamap_sync(t, map, offset, len, ops)
bus_dma_tag_t t;
bus_dmamap_t map;
+ bus_addr_t offset;
+ bus_size_t len;
int ops;
{
diff --git a/sys/arch/sparc/include/bus.h b/sys/arch/sparc/include/bus.h
index f69c11bbd13..a4ccf516925 100644
--- a/sys/arch/sparc/include/bus.h
+++ b/sys/arch/sparc/include/bus.h
@@ -1,4 +1,4 @@
-/* $NetBSD: bus.h,v 1.5 1998/02/04 01:57:41 thorpej Exp $ */
+/* $NetBSD: bus.h,v 1.6 1998/02/04 05:12:59 thorpej Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -397,7 +397,7 @@ struct sparc_bus_dma_tag {
bus_dma_segment_t *, int, bus_size_t, int));
void (*_dmamap_unload) __P((bus_dma_tag_t, bus_dmamap_t));
void (*_dmamap_sync) __P((bus_dma_tag_t, bus_dmamap_t,
- int));
+ bus_addr_t, bus_size_t, int));
/*
* DMA memory utility functions.
@@ -427,9 +427,9 @@ struct sparc_bus_dma_tag {
(*(t)->_dmamap_load_raw)((t), (m), (sg), (n), (s), (f))
#define bus_dmamap_unload(t, p) \
(*(t)->_dmamap_unload)((t), (p))
-#define bus_dmamap_sync(t, p, o) \
+#define bus_dmamap_sync(t, p, o, l, ops) \
(void)((t)->_dmamap_sync ? \
- (*(t)->_dmamap_sync)((t), (p), (o)) : (void)0)
+ (*(t)->_dmamap_sync)((t), (p), (o), (l), (ops)) : (void)0)
#define bus_dmamem_alloc(t, s, a, b, sg, n, r, f) \
(*(t)->_dmamem_alloc)((t), (s), (a), (b), (sg), (n), (r), (f))
@@ -480,7 +480,8 @@ int _bus_dmamap_load_uio __P((bus_dma_tag_t, bus_dmamap_t,
int _bus_dmamap_load_raw __P((bus_dma_tag_t, bus_dmamap_t,
bus_dma_segment_t *, int, bus_size_t, int));
void _bus_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t));
-void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, int));
+void _bus_dmamap_sync __P((bus_dma_tag_t, bus_dmamap_t, bus_addr_t,
+ bus_size_t, int));
int _bus_dmamem_alloc __P((bus_dma_tag_t tag, bus_size_t size,
bus_size_t alignment, bus_size_t boundary,
diff --git a/sys/arch/sparc/sparc/machdep.c b/sys/arch/sparc/sparc/machdep.c
index 27dd693b3d2..0464e707871 100644
--- a/sys/arch/sparc/sparc/machdep.c
+++ b/sys/arch/sparc/sparc/machdep.c
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.99 1998/02/04 01:57:42 thorpej Exp $ */
+/* $NetBSD: machdep.c,v 1.100 1998/02/04 05:13:00 thorpej Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -1410,13 +1410,17 @@ _bus_dmamap_unload(t, map)
* by bus-specific DMA map synchronization functions.
*/
void
-_bus_dmamap_sync(t, map, ops)
+_bus_dmamap_sync(t, map, offset, len, ops)
bus_dma_tag_t t;
bus_dmamap_t map;
+ bus_addr_t offset;
+ bus_size_t len;
int ops;
{
- /* Nothing to do here. */
+ /*
+ * XXX Should flush CPU write buffers.
+ */
}
/*
diff --git a/sys/dev/eisa/ahb.c b/sys/dev/eisa/ahb.c
index edb105b20d5..1f54376c55e 100644
--- a/sys/dev/eisa/ahb.c
+++ b/sys/dev/eisa/ahb.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ahb.c,v 1.16 1998/02/04 00:35:57 thorpej Exp $ */
+/* $NetBSD: ahb.c,v 1.17 1998/02/04 05:13:39 thorpej Exp $ */
#undef AHBDEBUG
#ifdef DDB
@@ -8,7 +8,7 @@
#endif
/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -731,7 +731,8 @@ ahb_done(sc, ecb)
* the data buffer.
*/
if (xs->datalen) {
- bus_dmamap_sync(dmat, ecb->dmamap_xfer,
+ bus_dmamap_sync(dmat, ecb->dmamap_xfer, 0,
+ ecb->dmamap_xfer->dm_mapsize,
(xs->flags & SCSI_DATA_IN) ? BUS_DMASYNC_POSTREAD :
BUS_DMASYNC_POSTWRITE);
bus_dmamap_unload(dmat, ecb->dmamap_xfer);
@@ -1067,7 +1068,8 @@ ahb_scsi_cmd(xs)
goto bad;
}
- bus_dmamap_sync(dmat, ecb->dmamap_xfer,
+ bus_dmamap_sync(dmat, ecb->dmamap_xfer, 0,
+ ecb->dmamap_xfer->dm_mapsize,
(flags & SCSI_DATA_IN) ? BUS_DMASYNC_PREREAD :
BUS_DMASYNC_PREWRITE);
diff --git a/sys/dev/ic/aha.c b/sys/dev/ic/aha.c
index c22712f7774..4808bff0bcf 100644
--- a/sys/dev/ic/aha.c
+++ b/sys/dev/ic/aha.c
@@ -1,4 +1,4 @@
-/* $NetBSD: aha.c,v 1.13 1998/02/04 00:36:54 thorpej Exp $ */
+/* $NetBSD: aha.c,v 1.14 1998/02/04 05:14:03 thorpej Exp $ */
#undef AHADIAG
#ifdef DDB
@@ -8,7 +8,7 @@
#endif
/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -842,7 +842,8 @@ aha_done(sc, ccb)
* the data buffer.
*/
if (xs->datalen) {
- bus_dmamap_sync(dmat, ccb->dmamap_xfer,
+ bus_dmamap_sync(dmat, ccb->dmamap_xfer, 0,
+ ccb->dmamap_xfer->dm_mapsize,
(xs->flags & SCSI_DATA_IN) ? BUS_DMASYNC_POSTREAD :
BUS_DMASYNC_POSTWRITE);
bus_dmamap_unload(dmat, ccb->dmamap_xfer);
@@ -1377,7 +1378,8 @@ aha_scsi_cmd(xs)
goto bad;
}
- bus_dmamap_sync(dmat, ccb->dmamap_xfer,
+ bus_dmamap_sync(dmat, ccb->dmamap_xfer, 0,
+ ccb->dmamap_xfer->dm_mapsize,
(flags & SCSI_DATA_IN) ? BUS_DMASYNC_PREREAD :
BUS_DMASYNC_PREWRITE);
diff --git a/sys/dev/ic/bha.c b/sys/dev/ic/bha.c
index 86a601722e8..fa2134d02a2 100644
--- a/sys/dev/ic/bha.c
+++ b/sys/dev/ic/bha.c
@@ -1,4 +1,4 @@
-/* $NetBSD: bha.c,v 1.20 1998/02/04 00:36:52 thorpej Exp $ */
+/* $NetBSD: bha.c,v 1.21 1998/02/04 05:14:01 thorpej Exp $ */
#undef BHADIAG
#ifdef DDB
@@ -8,7 +8,7 @@
#endif
/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -855,7 +855,8 @@ bha_done(sc, ccb)
* the data buffer.
*/
if (xs->datalen) {
- bus_dmamap_sync(dmat, ccb->dmamap_xfer,
+ bus_dmamap_sync(dmat, ccb->dmamap_xfer, 0,
+ ccb->dmamap_xfer->dm_mapsize,
(xs->flags & SCSI_DATA_IN) ? BUS_DMASYNC_POSTREAD :
BUS_DMASYNC_POSTWRITE);
bus_dmamap_unload(dmat, ccb->dmamap_xfer);
@@ -1492,7 +1493,8 @@ bha_scsi_cmd(xs)
goto bad;
}
- bus_dmamap_sync(dmat, ccb->dmamap_xfer,
+ bus_dmamap_sync(dmat, ccb->dmamap_xfer, 0,
+ ccb->dmamap_xfer->dm_mapsize,
(flags & SCSI_DATA_IN) ? BUS_DMASYNC_PREREAD :
BUS_DMASYNC_PREWRITE);
diff --git a/sys/dev/ic/uha.c b/sys/dev/ic/uha.c
index b9ebdadc523..17d35803163 100644
--- a/sys/dev/ic/uha.c
+++ b/sys/dev/ic/uha.c
@@ -1,4 +1,4 @@
-/* $NetBSD: uha.c,v 1.14 1998/02/04 00:36:53 thorpej Exp $ */
+/* $NetBSD: uha.c,v 1.15 1998/02/04 05:14:02 thorpej Exp $ */
#undef UHADEBUG
#ifdef DDB
@@ -8,7 +8,7 @@
#endif
/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -465,7 +465,8 @@ uha_done(sc, mscp)
* the data buffer.
*/
if (xs->datalen) {
- bus_dmamap_sync(dmat, mscp->dmamap_xfer,
+ bus_dmamap_sync(dmat, mscp->dmamap_xfer, 0,
+ mscp->dmamap_xfer->dm_mapsize,
(xs->flags & SCSI_DATA_IN) ? BUS_DMASYNC_POSTREAD :
BUS_DMASYNC_POSTWRITE);
bus_dmamap_unload(dmat, mscp->dmamap_xfer);
@@ -677,7 +678,8 @@ uha_scsi_cmd(xs)
goto bad;
}
- bus_dmamap_sync(dmat, mscp->dmamap_xfer,
+ bus_dmamap_sync(dmat, mscp->dmamap_xfer, 0,
+ mscp->dmamap_xfer->dm_mapsize,
(flags & SCSI_DATA_IN) ? BUS_DMASYNC_PREREAD :
BUS_DMASYNC_PREWRITE);
diff --git a/sys/dev/isa/isadma.c b/sys/dev/isa/isadma.c
index fdda9d773eb..c6374b7bff6 100644
--- a/sys/dev/isa/isadma.c
+++ b/sys/dev/isa/isadma.c
@@ -1,7 +1,7 @@
-/* $NetBSD: isadma.c,v 1.32 1997/09/05 01:48:33 thorpej Exp $ */
+/* $NetBSD: isadma.c,v 1.33 1998/02/04 05:14:35 thorpej Exp $ */
/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -285,10 +285,12 @@ isa_dmastart(isadev, chan, addr, nbytes, p, flags, busdmaflags)
#endif
if (flags & DMAMODE_READ) {
- bus_dmamap_sync(sc->sc_dmat, dmam, BUS_DMASYNC_PREREAD);
+ bus_dmamap_sync(sc->sc_dmat, dmam, 0, dmam->dm_mapsize,
+ BUS_DMASYNC_PREREAD);
sc->sc_dmareads |= (1 << chan);
} else {
- bus_dmamap_sync(sc->sc_dmat, dmam, BUS_DMASYNC_PREWRITE);
+ bus_dmamap_sync(sc->sc_dmat, dmam, 0, dmam->dm_mapsize,
+ BUS_DMASYNC_PREWRITE);
sc->sc_dmareads &= ~(1 << chan);
}
@@ -464,7 +466,7 @@ isa_dmadone(isadev, chan)
printf("%s: isa_dmadone: channel %d not finished\n",
sc->sc_dev.dv_xname, chan);
- bus_dmamap_sync(sc->sc_dmat, dmam,
+ bus_dmamap_sync(sc->sc_dmat, dmam, 0, dmam->dm_mapsize,
(sc->sc_dmareads & (1 << chan)) ? BUS_DMASYNC_POSTREAD :
BUS_DMASYNC_POSTWRITE);
diff --git a/sys/dev/isa/wds.c b/sys/dev/isa/wds.c
index 39f3d321fe4..3bf1a6abd5d 100644
--- a/sys/dev/isa/wds.c
+++ b/sys/dev/isa/wds.c
@@ -1,4 +1,4 @@
-/* $NetBSD: wds.c,v 1.29 1998/02/04 00:37:50 thorpej Exp $ */
+/* $NetBSD: wds.c,v 1.30 1998/02/04 05:14:36 thorpej Exp $ */
#undef WDSDIAG
#ifdef DDB
@@ -15,7 +15,7 @@
*/
/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -891,7 +891,8 @@ wds_done(sc, scb, stat)
* the data buffer.
*/
if (xs->datalen) {
- bus_dmamap_sync(dmat, scb->dmamap_xfer,
+ bus_dmamap_sync(dmat, scb->dmamap_xfer, 0,
+ scb->dmamap_xfer->dm_mapsize,
(xs->flags & SCSI_DATA_IN) ? BUS_DMASYNC_POSTREAD :
BUS_DMASYNC_POSTWRITE);
bus_dmamap_unload(dmat, scb->dmamap_xfer);
@@ -1338,7 +1339,8 @@ wds_scsi_cmd(xs)
goto bad;
}
- bus_dmamap_sync(dmat, scb->dmamap_xfer,
+ bus_dmamap_sync(dmat, scb->dmamap_xfer, 0,
+ scb->dmamap_xfer->dm_mapsize,
(flags & SCSI_DATA_IN) ? BUS_DMASYNC_PREREAD :
BUS_DMASYNC_PREWRITE);
diff --git a/sys/dev/pci/if_fxp.c b/sys/dev/pci/if_fxp.c
index ac58fdc8ace..e162f9438b7 100644
--- a/sys/dev/pci/if_fxp.c
+++ b/sys/dev/pci/if_fxp.c
@@ -1,4 +1,4 @@
-/* $NetBSD: if_fxp.c,v 1.12 1998/02/04 00:38:50 thorpej Exp $ */
+/* $NetBSD: if_fxp.c,v 1.13 1998/02/04 05:14:55 thorpej Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -824,7 +824,8 @@ fxp_start(ifp)
dmamap->dm_segs[segment].ds_len;
}
- bus_dmamap_sync(sc->sc_dmat, dmamap, BUS_DMASYNC_PREWRITE);
+ bus_dmamap_sync(sc->sc_dmat, dmamap, 0, dmamap->dm_mapsize,
+ BUS_DMASYNC_PREWRITE);
txp->tbd_number = dmamap->dm_nsegs;
txp->cb_soft.mb_head = mb_head;
@@ -919,8 +920,8 @@ fxp_intr(arg)
sc->rfa_head = rxd->fr_next;
rxd->fr_next = NULL;
- bus_dmamap_sync(sc->sc_dmat, rxmap,
- BUS_DMASYNC_POSTREAD);
+ bus_dmamap_sync(sc->sc_dmat, rxmap, 0,
+ rxmap->dm_mapsize, BUS_DMASYNC_POSTREAD);
/*
* Add a new buffer to the receive chain.
@@ -991,6 +992,7 @@ fxp_intr(arg)
if (txp->cb_soft.mb_head != NULL) {
txmap = txp->cb_soft.dmamap;
bus_dmamap_sync(sc->sc_dmat, txmap,
+ 0, txmap->dm_mapsize,
BUS_DMASYNC_POSTWRITE);
bus_dmamap_unload(sc->sc_dmat, txmap);
m_freem(txp->cb_soft.mb_head);
@@ -1510,7 +1512,8 @@ fxp_add_rfabuf(sc, rxd)
}
}
- bus_dmamap_sync(sc->sc_dmat, rxmap, BUS_DMASYNC_PREREAD);
+ bus_dmamap_sync(sc->sc_dmat, rxmap, 0, rxmap->dm_mapsize,
+ BUS_DMASYNC_PREREAD);
/*
* Move the data pointer up so that the incoming data packet
diff --git a/sys/dev/pci/isp_pci.c b/sys/dev/pci/isp_pci.c
index b84dd3cb093..32413e3d5ce 100644
--- a/sys/dev/pci/isp_pci.c
+++ b/sys/dev/pci/isp_pci.c
@@ -1,4 +1,4 @@
-/* $NetBSD: isp_pci.c,v 1.18 1998/02/04 00:38:52 thorpej Exp $ */
+/* $NetBSD: isp_pci.c,v 1.19 1998/02/04 05:14:56 thorpej Exp $ */
/*
* PCI specific probe and attach routines for Qlogic ISP SCSI adapters.
@@ -537,7 +537,8 @@ isp_pci_dmasetup(isp, xs, rq, iptrp, optr)
} while (seg < segcnt);
mapsync:
- bus_dmamap_sync(pci->pci_dmat, dmap, xs->flags & SCSI_DATA_IN ?
+ bus_dmamap_sync(pci->pci_dmat, dmap, 0, dmap->dm_mapsize,
+ xs->flags & SCSI_DATA_IN ?
BUS_DMASYNC_PREREAD : BUS_DMASYNC_PREWRITE);
return (0);
}
@@ -551,7 +552,8 @@ isp_pci_dmateardown(isp, xs, handle)
struct isp_pcisoftc *pci = (struct isp_pcisoftc *)isp;
bus_dmamap_t dmap = pci->pci_xfer_dmap[handle];
- bus_dmamap_sync(pci->pci_dmat, dmap, xs->flags & SCSI_DATA_IN ?
+ bus_dmamap_sync(pci->pci_dmat, dmap, 0, dmap->dm_mapsize,
+ xs->flags & SCSI_DATA_IN ?
BUS_DMASYNC_POSTREAD : BUS_DMASYNC_POSTWRITE);
bus_dmamap_unload(pci->pci_dmat, dmap);
}
diff --git a/sys/dev/vme/xd.c b/sys/dev/vme/xd.c
index 38656c9dcdc..dd0f8af1091 100644
--- a/sys/dev/vme/xd.c
+++ b/sys/dev/vme/xd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: xd.c,v 1.8 1998/02/04 01:19:23 pk Exp $ */
+/* $NetBSD: xd.c,v 1.9 1998/02/04 05:15:16 thorpej Exp $ */
/*
*
@@ -1498,8 +1498,8 @@ xdc_startbuf(xdcsc, xdsc, bp)
return (XD_ERR_FAIL); /* XXX: need some sort of
* call-back scheme here? */
}
- bus_dmamap_sync(xdcsc->dmatag, iorq->dmamap,
- (bp->b_flags & B_READ)
+ bus_dmamap_sync(xdcsc->dmatag, iorq->dmamap, 0,
+ iorq->dmamap->dm_mapsize, (bp->b_flags & B_READ)
? BUS_DMASYNC_PREREAD
: BUS_DMASYNC_PREWRITE);
@@ -1791,7 +1791,8 @@ xdc_reset(xdcsc, quiet, blastmode, error, xdsc)
iorq->buf->b_resid =
iorq->sectcnt * XDFM_BPS;
- bus_dmamap_sync(xdcsc->dmatag, iorq->dmamap,
+ bus_dmamap_sync(xdcsc->dmatag, iorq->dmamap, 0,
+ iorq->dmamap->dm_mapsize,
(iorq->buf->b_flags & B_READ)
? BUS_DMASYNC_POSTREAD
: BUS_DMASYNC_POSTWRITE);
@@ -2001,7 +2002,8 @@ xdc_remove_iorq(xdcsc)
} else {
bp->b_resid = 0; /* done */
}
- bus_dmamap_sync(xdcsc->dmatag, iorq->dmamap,
+ bus_dmamap_sync(xdcsc->dmatag, iorq->dmamap, 0,
+ iorq->dmamap->dm_mapsize,
(bp->b_flags & B_READ)
? BUS_DMASYNC_POSTREAD
: BUS_DMASYNC_POSTWRITE);
diff --git a/sys/dev/vme/xy.c b/sys/dev/vme/xy.c
index 9f059c077de..31734378f45 100644
--- a/sys/dev/vme/xy.c
+++ b/sys/dev/vme/xy.c
@@ -1,4 +1,4 @@
-/* $NetBSD: xy.c,v 1.6 1998/02/04 00:54:27 pk Exp $ */
+/* $NetBSD: xy.c,v 1.7 1998/02/04 05:15:17 thorpej Exp $ */
/*
*
@@ -1328,8 +1328,8 @@ xyc_startbuf(xycsc, xysc, bp)
* call-back scheme here? */
}
- bus_dmamap_sync(xycsc->dmatag, iorq->dmamap,
- (bp->b_flags & B_READ)
+ bus_dmamap_sync(xycsc->dmatag, iorq->dmamap, 0,
+ iorq->dmamap->dm_mapsize, (bp->b_flags & B_READ)
? BUS_DMASYNC_PREREAD
: BUS_DMASYNC_PREWRITE);
@@ -1674,7 +1674,8 @@ xyc_reset(xycsc, quiet, blastmode, error, xysc)
iorq->buf->b_flags |= B_ERROR;
iorq->buf->b_resid = iorq->sectcnt * XYFM_BPS;
- bus_dmamap_sync(xycsc->dmatag, iorq->dmamap,
+ bus_dmamap_sync(xycsc->dmatag, iorq->dmamap, 0,
+ iorq->dmamap->dm_mapsize,
(iorq->buf->b_flags & B_READ)
? BUS_DMASYNC_POSTREAD
: BUS_DMASYNC_POSTWRITE);
@@ -1856,7 +1857,8 @@ xyc_remove_iorq(xycsc)
} else {
bp->b_resid = 0; /* done */
}
- bus_dmamap_sync(xycsc->dmatag, iorq->dmamap,
+ bus_dmamap_sync(xycsc->dmatag, iorq->dmamap, 0,
+ iorq->dmamap->dm_mapsize,
(iorq->buf->b_flags & B_READ)
? BUS_DMASYNC_POSTREAD
: BUS_DMASYNC_POSTWRITE);