Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/sys/dev/tc Pull up revs. 1.9-1.11:



details:   https://anonhg.NetBSD.org/src/rev/ae52c7272ff9
branches:  netbsd-1-5
changeset: 488564:ae52c7272ff9
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Tue Jul 18 06:21:24 2000 +0000

description:
Pull up revs. 1.9-1.11:
Changes to make 7930 ISDN/Audio work on TurboChannel Alphas.

diffstat:

 sys/dev/tc/bba.c |  46 ++++++++++++++++++++++------------------------
 1 files changed, 22 insertions(+), 24 deletions(-)

diffs (108 lines):

diff -r 285bae9e0588 -r ae52c7272ff9 sys/dev/tc/bba.c
--- a/sys/dev/tc/bba.c  Tue Jul 18 06:19:04 2000 +0000
+++ b/sys/dev/tc/bba.c  Tue Jul 18 06:21:24 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: bba.c,v 1.6.2.1 2000/06/30 16:27:51 simonb Exp $ */
+/* $NetBSD: bba.c,v 1.6.2.2 2000/07/18 06:21:24 thorpej Exp $ */
 
 /*
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -63,10 +63,9 @@
 #define DPRINTF(x)
 #endif  /* AUDIO_DEBUG */
 
-#define BBA_REGISTER_SHIFT     6
 #define BBA_MAX_DMA_SEGMENTS   16
-#define BBA_DMABUF_SIZE                (BBA_MAX_DMA_SEGMENTS*PAGE_SIZE)
-#define BBA_DMABUF_ALIGN       PAGE_SIZE
+#define BBA_DMABUF_SIZE                (BBA_MAX_DMA_SEGMENTS*IOASIC_DMA_BLOCKSIZE)
+#define BBA_DMABUF_ALIGN       IOASIC_DMA_BLOCKSIZE
 #define BBA_DMABUF_BOUNDARY    0
 
 struct bba_mem {
@@ -384,7 +383,8 @@
 {
        DPRINTF(("bba_round_buffersize: size=%d\n", size));
 
-       return  (size > BBA_DMABUF_SIZE ? BBA_DMABUF_SIZE : round_page(size));
+       return (size > BBA_DMABUF_SIZE ? BBA_DMABUF_SIZE :
+           roundup(size, IOASIC_DMA_BLOCKSIZE));
 }
 
 
@@ -472,8 +472,8 @@
        bus_space_write_4(sc->sc_bst, sc->sc_bsh, IOASIC_CSR, ssr);
 
        if (bus_dmamap_create(sc->sc_dmat, (char *)end - (char *)start,
-           BBA_MAX_DMA_SEGMENTS, PAGE_SIZE, BBA_DMABUF_BOUNDARY,
-           BUS_DMA_NOWAIT, &d->dmam)) {
+           BBA_MAX_DMA_SEGMENTS, IOASIC_DMA_BLOCKSIZE,
+           BBA_DMABUF_BOUNDARY, BUS_DMA_NOWAIT, &d->dmam)) {
                printf("bba_trigger_output: can't create DMA map\n");
                goto bad;
        }
@@ -541,8 +541,8 @@
        bus_space_write_4(sc->sc_bst, sc->sc_bsh, IOASIC_CSR, ssr);
 
        if (bus_dmamap_create(sc->sc_dmat, (char *)end - (char *)start,
-           BBA_MAX_DMA_SEGMENTS, PAGE_SIZE, BBA_DMABUF_BOUNDARY,
-           BUS_DMA_NOWAIT, &d->dmam)) {
+           BBA_MAX_DMA_SEGMENTS, IOASIC_DMA_BLOCKSIZE,
+           BBA_DMABUF_BOUNDARY, BUS_DMA_NOWAIT, &d->dmam)) {
                printf("bba_trigger_input: can't create DMA map\n");
                goto bad;
        }
@@ -775,9 +775,6 @@
        return val;
 }
 
-
-#define TIMETOWASTE    50
-
 /* direct write */
 void
 bba_codec_dwrite(asc, reg, val)
@@ -786,14 +783,16 @@
        u_int8_t val;
 {
        struct bba_softc *sc = (struct bba_softc *)asc;
-       int i;
 
        DPRINTF(("bba_codec_dwrite(): sc=%p, reg=%d, val=%d\n",sc,reg,val));
 
+#if defined(__alpha__)
        bus_space_write_4(sc->sc_bst, sc->sc_codec_bsh,
-               (reg<<BBA_REGISTER_SHIFT), val);
-
-       for (i=0; i<TIMETOWASTE; i++) {};
+           reg << 2, val << 8);
+#else
+       bus_space_write_4(sc->sc_bst, sc->sc_codec_bsh,
+           reg << 6, val);
+#endif
 }
 
 /* direct read */
@@ -803,15 +802,14 @@
        int reg;
 {
        struct bba_softc *sc = (struct bba_softc *)asc;
-       u_int8_t val;
-       int i;
 
        DPRINTF(("bba_codec_dread(): sc=%p, reg=%d\n",sc,reg));
 
-       val = bus_space_read_1(sc->sc_bst, sc->sc_codec_bsh,
-               (reg<<BBA_REGISTER_SHIFT));
-
-       for (i=0; i<TIMETOWASTE; i++) {};
-
-       return val;
+#if defined(__alpha__)
+       return ((bus_space_read_4(sc->sc_bst, sc->sc_codec_bsh,
+               reg << 2) >> 8) & 0xff);
+#else
+       return (bus_space_read_4(sc->sc_bst, sc->sc_codec_bsh,
+               reg << 6) & 0xff);
+#endif
 }



Home | Main Index | Thread Index | Old Index