Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/arc/isa fix serious inconsistency against -current ...



details:   https://anonhg.NetBSD.org/src/rev/4d524af0de58
branches:  trunk
changeset: 488057:4d524af0de58
user:      soda <soda%NetBSD.org@localhost>
date:      Sat Jun 17 06:58:35 2000 +0000

description:
fix serious inconsistency against -current isa.

diffstat:

 sys/arch/arc/isa/isabus.c |  23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diffs (76 lines):

diff -r 42847e28240a -r 4d524af0de58 sys/arch/arc/isa/isabus.c
--- a/sys/arch/arc/isa/isabus.c Sat Jun 17 06:58:22 2000 +0000
+++ b/sys/arch/arc/isa/isabus.c Sat Jun 17 06:58:35 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: isabus.c,v 1.10 2000/06/09 05:42:01 soda Exp $ */
+/*     $NetBSD: isabus.c,v 1.11 2000/06/17 06:58:35 soda Exp $ */
 /*     $OpenBSD: isabus.c,v 1.15 1998/03/16 09:38:46 pefo Exp $        */
 /*     NetBSD: isa.c,v 1.33 1995/06/28 04:30:51 cgd Exp        */
 
@@ -124,6 +124,7 @@
        struct  device sc_dv;
        struct  arc_isa_bus arc_isa_cs;
        struct  abus sc_bus;
+       struct arc_bus_dma_tag sc_dmat;
 };
 
 /* Definition of the driver for autoconfig. */
@@ -138,6 +139,8 @@
 
 extern struct arc_bus_space arc_bus_io, arc_bus_mem;
 
+void   isabr_attach_hook __P((struct device *, struct device *,
+                       struct isabus_attach_args *));
 const struct evcnt *isabr_intr_evcnt __P((isa_chipset_tag_t, int));
 void   *isabr_intr_establish __P((isa_chipset_tag_t, int, int, int,
                        int (*)(void *), void *));
@@ -182,12 +185,15 @@
        case MAGNUM:
        case NEC_R94:
        case NEC_R96:
+               jazz_bus_dma_tag_init(&sc->sc_dmat);
                set_intr(MIPS_INT_MASK_2, isabr_iointr, 3);
                break;
        case DESKSTATION_TYNE:
+               _bus_dma_tag_init(&sc->sc_dmat); /* XXX dedicated bounce mem */
                set_intr(MIPS_INT_MASK_2, isabr_iointr, 2);
                break;
        case DESKSTATION_RPC44:
+               _bus_dma_tag_init(&sc->sc_dmat); /* XXX bounce for >16MB */
                set_intr(MIPS_INT_MASK_2, isabr_iointr, 2);
                break;
        default:
@@ -198,13 +204,15 @@
        sc->sc_bus.ab_dv = (struct device *)sc;
        sc->sc_bus.ab_type = BUS_ISABR;
 
+       sc->arc_isa_cs.ic_attach_hook = isabr_attach_hook;
        sc->arc_isa_cs.ic_intr_evcnt = isabr_intr_evcnt;
        sc->arc_isa_cs.ic_intr_establish = isabr_intr_establish;
        sc->arc_isa_cs.ic_intr_disestablish = isabr_intr_disestablish;
 
        iba.iba_busname = "isa";
-       iba.iba_iot = (bus_space_tag_t)&arc_bus_io;
-       iba.iba_memt = (bus_space_tag_t)&arc_bus_mem;
+       iba.iba_iot = &arc_bus_io;
+       iba.iba_memt = &arc_bus_mem;
+       iba.iba_dmat = &sc->sc_dmat;
        iba.iba_ic = &sc->arc_isa_cs;
        config_found(self, &iba, isabrprint);
 }
@@ -310,6 +318,15 @@
        }
 }
 
+void
+isabr_attach_hook(parent, self, iba)
+       struct device *parent, *self;
+       struct isabus_attach_args *iba;
+{
+
+       /* Nothing to do. */
+}
+
 const struct evcnt *
 isabr_intr_evcnt(ic, irq)
        isa_chipset_tag_t ic;



Home | Main Index | Thread Index | Old Index