diff options
Diffstat (limited to 'sys/dev/isa/isadma.c')
-rw-r--r-- | sys/dev/isa/isadma.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/dev/isa/isadma.c b/sys/dev/isa/isadma.c index 80efb570834..b108e4d52ae 100644 --- a/sys/dev/isa/isadma.c +++ b/sys/dev/isa/isadma.c @@ -1,4 +1,4 @@ -/* $OpenBSD: isadma.c,v 1.23 2001/10/31 11:00:24 art Exp $ */ +/* $OpenBSD: isadma.c,v 1.24 2001/11/05 17:25:58 art Exp $ */ /* $NetBSD: isadma.c,v 1.32 1997/09/05 01:48:33 thorpej Exp $ */ /*- @@ -352,10 +352,14 @@ 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); } @@ -531,7 +535,8 @@ 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); |