diff options
author | dfr <dfr@FreeBSD.org> | 1998-07-12 16:23:19 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 1998-07-12 16:23:19 +0000 |
commit | a9e2f7158b8e7664eefe902fad111f6edf2c0e12 (patch) | |
tree | 197a2ee3209d2b89fbcf462d6307e70faea474af /sys/alpha/tlsb | |
parent | 33ad41510d68d612cdf5b41df02e729b0c032a12 (diff) | |
download | FreeBSD-src-a9e2f7158b8e7664eefe902fad111f6edf2c0e12.zip FreeBSD-src-a9e2f7158b8e7664eefe902fad111f6edf2c0e12.tar.gz |
Update to new interrupt api.
Diffstat (limited to 'sys/alpha/tlsb')
-rw-r--r-- | sys/alpha/tlsb/dwlpx.c | 8 | ||||
-rw-r--r-- | sys/alpha/tlsb/gbus.c | 3 | ||||
-rw-r--r-- | sys/alpha/tlsb/kftxx.c | 5 | ||||
-rw-r--r-- | sys/alpha/tlsb/tlsb.c | 23 | ||||
-rw-r--r-- | sys/alpha/tlsb/zs_tlsb.c | 10 |
5 files changed, 35 insertions, 14 deletions
diff --git a/sys/alpha/tlsb/dwlpx.c b/sys/alpha/tlsb/dwlpx.c index 14317b6..820b62a 100644 --- a/sys/alpha/tlsb/dwlpx.c +++ b/sys/alpha/tlsb/dwlpx.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: dwlpx.c,v 1.1 1998/06/10 10:55:41 dfr Exp $ + * $Id: dwlpx.c,v 1.2 1998/06/14 13:45:21 dfr Exp $ */ #include "opt_simos.h" @@ -264,10 +264,12 @@ static int dwlpx_attach(device_t dev) { struct dwlpx_softc* sc = DWLPX_SOFTC(dev); + device_t parent = device_get_parent(dev); vm_offset_t regs; dwlpx0 = dev; chipset = dwlpx_chipset; + chipset.bridge = dev; regs = KV(DWLPX_BASE(kft_get_node(dev), kft_get_hosenum(dev))); sc->dmem_base = regs + (0L << 32); @@ -277,7 +279,9 @@ dwlpx_attach(device_t dev) *(u_int32_t*) (regs + PCIA_CTL(0)) = 1; /* Type1 config cycles */ - BUS_MAP_INTR(device_get_parent(dev), dev, dwlpx_intr, 0); + BUS_CONNECT_INTR(parent, + BUS_CREATE_INTR(parent, dev, + 0, dwlpx_intr, 0)); return 0; } diff --git a/sys/alpha/tlsb/gbus.c b/sys/alpha/tlsb/gbus.c index c7a1191..9894889 100644 --- a/sys/alpha/tlsb/gbus.c +++ b/sys/alpha/tlsb/gbus.c @@ -92,7 +92,8 @@ static device_method_t gbus_methods[] = { DEVMETHOD(bus_print_child, gbus_print_child), DEVMETHOD(bus_read_ivar, gbus_read_ivar), DEVMETHOD(bus_write_ivar, bus_generic_write_ivar), - DEVMETHOD(bus_map_intr, bus_generic_map_intr), + DEVMETHOD(bus_create_intr, bus_generic_create_intr), + DEVMETHOD(bus_connect_intr, bus_generic_connect_intr), { 0, 0 } }; diff --git a/sys/alpha/tlsb/kftxx.c b/sys/alpha/tlsb/kftxx.c index d2b19d2..6f9f89a 100644 --- a/sys/alpha/tlsb/kftxx.c +++ b/sys/alpha/tlsb/kftxx.c @@ -1,4 +1,4 @@ -/* $Id: kftxx.c,v 1.1 1998/06/10 10:55:49 dfr Exp $ */ +/* $Id: kftxx.c,v 1.2 1998/06/14 13:45:24 dfr Exp $ */ /* $NetBSD: kftxx.c,v 1.9 1998/05/14 00:01:32 thorpej Exp $ */ /* @@ -89,7 +89,8 @@ static device_method_t kft_methods[] = { DEVMETHOD(bus_print_child, kft_print_child), DEVMETHOD(bus_read_ivar, kft_read_ivar), DEVMETHOD(bus_write_ivar, bus_generic_write_ivar), - DEVMETHOD(bus_map_intr, bus_generic_map_intr), + DEVMETHOD(bus_create_intr, bus_generic_create_intr), + DEVMETHOD(bus_connect_intr, bus_generic_connect_intr), { 0, 0 } }; diff --git a/sys/alpha/tlsb/tlsb.c b/sys/alpha/tlsb/tlsb.c index cb9639f..6e618a3 100644 --- a/sys/alpha/tlsb/tlsb.c +++ b/sys/alpha/tlsb/tlsb.c @@ -95,7 +95,8 @@ static devclass_t tlsb_devclass; static int tlsb_probe(device_t dev); static void tlsb_print_child(device_t dev, device_t child); static int tlsb_read_ivar(device_t dev, device_t child, int which, u_long* result); -static int tlsb_map_intr(device_t dev, device_t child, driver_intr_t *intr, void *arg); +static void *tlsb_create_intr(device_t dev, device_t child, int irq, driver_intr_t *intr, void *arg); +static int tlsb_connect_intr(device_t dev, void* ih); static device_method_t tlsb_methods[] = { /* Device interface */ @@ -108,7 +109,8 @@ static device_method_t tlsb_methods[] = { DEVMETHOD(bus_print_child, tlsb_print_child), DEVMETHOD(bus_read_ivar, tlsb_read_ivar), DEVMETHOD(bus_write_ivar, bus_generic_write_ivar), - DEVMETHOD(bus_map_intr, tlsb_map_intr), + DEVMETHOD(bus_create_intr, tlsb_create_intr), + DEVMETHOD(bus_connect_intr, tlsb_connect_intr), { 0, 0 } }; @@ -263,18 +265,27 @@ tlsb_read_ivar(device_t dev, device_t child, return ENOENT; } -static int -tlsb_map_intr(device_t dev, device_t child, driver_intr_t *intr, void *arg) +static void * +tlsb_create_intr(device_t dev, device_t child, + int irq, driver_intr_t *intr, void *arg) { struct tlsb_softc* sc = device_get_softc(dev); struct intr_mapping* i; i = malloc(sizeof(struct intr_mapping), M_DEVBUF, M_NOWAIT); if (!i) - return ENOMEM; + return NULL; i->intr = intr; i->arg = arg; - STAILQ_INSERT_TAIL(&sc->intr_handlers, i, queue); + return i; +} + +static int +tlsb_connect_intr(device_t dev, void *ih) +{ + struct tlsb_softc* sc = device_get_softc(dev); + struct intr_mapping* i = ih; + STAILQ_INSERT_TAIL(&sc->intr_handlers, i, queue); return 0; } diff --git a/sys/alpha/tlsb/zs_tlsb.c b/sys/alpha/tlsb/zs_tlsb.c index fccebe8..ab470d9 100644 --- a/sys/alpha/tlsb/zs_tlsb.c +++ b/sys/alpha/tlsb/zs_tlsb.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: zs_tlsb.c,v 1.2 1998/06/14 13:45:28 dfr Exp $ + * $Id: zs_tlsb.c,v 1.3 1998/07/05 12:16:54 dfr Exp $ */ /* * This driver is a hopeless hack to get the SimOS console working. A real @@ -404,7 +404,8 @@ static device_method_t zsc_tlsb_methods[] = { DEVMETHOD(bus_print_child, zsc_tlsb_print_child), DEVMETHOD(bus_read_ivar, bus_generic_read_ivar), DEVMETHOD(bus_write_ivar, bus_generic_write_ivar), - DEVMETHOD(bus_map_intr, bus_generic_map_intr), + DEVMETHOD(bus_create_intr, bus_generic_create_intr), + DEVMETHOD(bus_connect_intr, bus_generic_connect_intr), { 0, 0 } }; @@ -453,6 +454,7 @@ static int zsc_tlsb_attach(device_t dev) { struct zsc_softc* sc = device_get_softc(dev); + device_t parent = device_get_parent(dev); bus_generic_attach(dev); @@ -460,7 +462,9 @@ zsc_tlsb_attach(device_t dev) sc->sc_a = ZS_SOFTC(0); sc->sc_b = ZS_SOFTC(1); - BUS_MAP_INTR(device_get_parent(dev), dev, zsc_tlsb_intr, sc); + BUS_CONNECT_INTR(parent, + BUS_CREATE_INTR(parent, dev, + 1, zsc_tlsb_intr, sc)); return 0; } |