From e51a0439458036332a95652b980d6e2b045e68dc Mon Sep 17 00:00:00 2001 From: thorpej Date: Fri, 15 Jun 2001 04:01:39 +0000 Subject: [PATCH] Yet more interrupt cleanup -- the platform mater interrupt establish function now just takes an "irq", which is an index into the irqmap table for that platform. --- sys/arch/algor/algor/algor_p4032_intr.c | 57 ++++++++++++----- sys/arch/algor/algor/algor_p4032var.h | 16 +---- sys/arch/algor/algor/algor_p5064_intr.c | 85 +++++++++++++++++-------- sys/arch/algor/algor/algor_p5064var.h | 16 +---- sys/arch/algor/algor/interrupt.c | 5 +- sys/arch/algor/dev/com_mainbus.c | 14 +--- sys/arch/algor/dev/lpt_mainbus.c | 14 +--- sys/arch/algor/include/intr.h | 4 +- sys/arch/algor/pci/pcib.c | 10 +-- 9 files changed, 121 insertions(+), 100 deletions(-) diff --git a/sys/arch/algor/algor/algor_p4032_intr.c b/sys/arch/algor/algor/algor_p4032_intr.c index 9bda5fd8e549..7ba471968a3b 100644 --- a/sys/arch/algor/algor/algor_p4032_intr.c +++ b/sys/arch/algor/algor/algor_p4032_intr.c @@ -1,4 +1,4 @@ -/* $NetBSD: algor_p4032_intr.c,v 1.3 2001/06/10 09:13:06 thorpej Exp $ */ +/* $NetBSD: algor_p4032_intr.c,v 1.4 2001/06/15 04:01:39 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -126,6 +126,15 @@ const char *p4032_intrnames[NIRQMAPS] = { "mcclock", }; +struct p4032_irqmap { + int irqidx; + int cpuintr; + int irqreg; + int irqbit; + int xbarreg; + int xbarshift; +}; + const struct p4032_irqmap p4032_irqmap[NIRQMAPS] = { /* * PCI INTERRUPTS @@ -153,35 +162,35 @@ const struct p4032_irqmap p4032_irqmap[NIRQMAPS] = { /* * 8-BIT DEVICE INTERRUPTS */ - { 4, 1, + { P4032_IRQ_PCICTLR, 1, IRQREG_8BIT, IRR0_PCICTLR, 0, 0 }, - { 5, 1, + { P4032_IRQ_FLOPPY, 1, IRQREG_8BIT, IRR0_FLOPPY, 0, 2 }, - { 6, 1, + { P4032_IRQ_PCKBC, 1, IRQREG_8BIT, IRR0_PCKBC, 0, 4 }, - { 7, 1, + { P4032_IRQ_COM1, 1, IRQREG_8BIT, IRR0_COM1, 0, 6 }, - { 8, 1, + { P4032_IRQ_COM2, 1, IRQREG_8BIT, IRR0_COM2, 1, 0 }, - { 9, 1, + { P4032_IRQ_LPT, 1, IRQREG_8BIT, IRR0_LPT, 1, 2 }, - { 10, 1, + { P4032_IRQ_GPIO, 1, IRQREG_8BIT, IRR0_GPIO, 1, 4 }, - { 11, 1, + { P4032_IRQ_RTC, 1, IRQREG_8BIT, IRR0_RTC, 1, 6 }, }; @@ -210,12 +219,15 @@ const char *p4032_intrgroups[NINTRS] = { "8-bit", }; +void *algor_p4032_intr_establish(int, int (*)(void *), void *); +void algor_p4032_intr_disestablish(void *); int algor_p4032_pci_intr_map(struct pci_attach_args *, pci_intr_handle_t *); const char *algor_p4032_pci_intr_string(void *, pci_intr_handle_t); const struct evcnt *algor_p4032_pci_intr_evcnt(void *, pci_intr_handle_t); void *algor_p4032_pci_intr_establish(void *, pci_intr_handle_t, int, int (*)(void *), void *); +void algor_p4032_pci_intr_disestablish(void *, void *); void algor_p4032_pci_conf_interrupt(void *, int, int, int, int, int *); void algor_p4032_iointr(u_int32_t, u_int32_t, u_int32_t, u_int32_t); @@ -255,10 +267,12 @@ algor_p4032_intr_init(struct p4032_config *acp) acp->ac_pc.pc_intr_string = algor_p4032_pci_intr_string; acp->ac_pc.pc_intr_evcnt = algor_p4032_pci_intr_evcnt; acp->ac_pc.pc_intr_establish = algor_p4032_pci_intr_establish; - acp->ac_pc.pc_intr_disestablish = algor_p4032_intr_disestablish; + acp->ac_pc.pc_intr_disestablish = algor_p4032_pci_intr_disestablish; acp->ac_pc.pc_conf_interrupt = algor_p4032_pci_conf_interrupt; acp->ac_pc.pc_pciide_compat_intr_establish = NULL; + algor_intr_establish = algor_p4032_intr_establish; + algor_intr_disestablish = algor_p4032_intr_disestablish; algor_iointr = algor_p4032_iointr; } @@ -328,12 +342,16 @@ algor_p4032_cal_timer(bus_space_tag_t st, bus_space_handle_t sh) } void * -algor_p4032_intr_establish(const struct p4032_irqmap *irqmap, - int (*func)(void *), void *arg) +algor_p4032_intr_establish(int irq, int (*func)(void *), void *arg) { + const struct p4032_irqmap *irqmap; struct algor_intrhand *ih; int s; + irqmap = &p4032_irqmap[irq]; + + KASSERT(irq == irqmap->irqidx); + ih = malloc(sizeof(*ih), M_DEVBUF, M_NOWAIT); if (ih == NULL) return (NULL); @@ -366,12 +384,14 @@ algor_p4032_intr_establish(const struct p4032_irqmap *irqmap, } void -algor_p4032_intr_disestablish(void *v, void *cookie) +algor_p4032_intr_disestablish(void *cookie) { const struct p4032_irqmap *irqmap; - struct algor_intrhand *ih = v; + struct algor_intrhand *ih = cookie; int s; + irqmap = ih->ih_irqmap; + s = splhigh(); /* @@ -544,7 +564,14 @@ algor_p4032_pci_intr_establish(void *v, pci_intr_handle_t ih, int level, if (ih >= NPCIIRQS) panic("algor_p4032_intr_establish: bogus IRQ %ld\n", ih); - return (algor_p4032_intr_establish(&p4032_irqmap[ih], func, arg)); + return (algor_p4032_intr_establish(ih, func, arg)); +} + +void +algor_p4032_pci_intr_disestablish(void *v, void *cookie) +{ + + return (algor_p4032_intr_disestablish(cookie)); } void diff --git a/sys/arch/algor/algor/algor_p4032var.h b/sys/arch/algor/algor/algor_p4032var.h index bb7222409d14..cff2b53fe6ec 100644 --- a/sys/arch/algor/algor/algor_p4032var.h +++ b/sys/arch/algor/algor/algor_p4032var.h @@ -1,4 +1,4 @@ -/* $NetBSD: algor_p4032var.h,v 1.2 2001/06/10 05:26:58 thorpej Exp $ */ +/* $NetBSD: algor_p4032var.h,v 1.3 2001/06/15 04:01:40 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -68,21 +68,7 @@ struct p4032_config { #define P4032_IRQ_GPIO 10 #define P4032_IRQ_RTC 11 -struct p4032_irqmap { - int irqidx; - int cpuintr; - int irqreg; - int irqbit; - int xbarreg; - int xbarshift; -}; - -void algor_p4032_intr_disestablish(void *, void *); -void *algor_p4032_intr_establish(const struct p4032_irqmap *, - int (*)(void *), void *); - extern struct p4032_config p4032_configuration; -extern const struct p4032_irqmap p4032_irqmap[]; void algor_p4032loc_bus_io_init(bus_space_tag_t, void *); void algor_p4032_bus_io_init(bus_space_tag_t, void *); diff --git a/sys/arch/algor/algor/algor_p5064_intr.c b/sys/arch/algor/algor/algor_p5064_intr.c index 118ffbd9aeb6..95645fd1f880 100644 --- a/sys/arch/algor/algor/algor_p5064_intr.c +++ b/sys/arch/algor/algor/algor_p5064_intr.c @@ -1,4 +1,4 @@ -/* $NetBSD: algor_p5064_intr.c,v 1.3 2001/06/10 09:13:07 thorpej Exp $ */ +/* $NetBSD: algor_p5064_intr.c,v 1.4 2001/06/15 04:01:40 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -146,6 +146,15 @@ const char *p5064_intrnames[NIRQMAPS] = { "IDE secondary", }; +struct p5064_irqmap { + int irqidx; + int cpuintr; + int irqreg; + int irqbit; + int xbarreg; + int xbarshift; +}; + const struct p5064_irqmap p5064_irqmap[NIRQMAPS] = { /* * PCI INTERRUPTS @@ -171,17 +180,17 @@ const struct p5064_irqmap p5064_irqmap[NIRQMAPS] = { 2, 6 }, /* Ethernet */ - { 4, 1, + { P5064_IRQ_ETHERNET, 1, IRQREG_PCIINT, PCIINT_ETH, 4, 2 }, /* SCSI */ - { 5, 1, + { P5064_IRQ_SCSI, 1, IRQREG_PCIINT, PCIINT_SCSI, 4, 4 }, /* USB */ - { 6, 1, + { P5064_IRQ_USB, 1, IRQREG_PCIINT, PCIINT_USB, 4, 6 }, @@ -189,32 +198,32 @@ const struct p5064_irqmap p5064_irqmap[NIRQMAPS] = { * LOCAL INTERRUPTS */ /* keyboard */ - { 7, 2, + { P5064_IRQ_MKBD, 2, IRQREG_LOCINT, LOCINT_MKBD, 0, 4 }, /* COM1 */ - { 8, 2, + { P5064_IRQ_COM1, 2, IRQREG_LOCINT, LOCINT_COM1, 0, 6 }, /* COM2 */ - { 9, 2, + { P5064_IRQ_COM2, 2, IRQREG_LOCINT, LOCINT_COM2, 1, 0 }, /* floppy controller */ - { 10, 2, + { P5064_IRQ_FLOPPY, 2, IRQREG_LOCINT, LOCINT_FLP, 0, 2 }, /* parallel port */ - { 11, 2, + { P5064_IRQ_CENTRONICS, 2, IRQREG_LOCINT, LOCINT_CENT, 1, 2 }, /* RTC */ - { 12, 2, + { P5064_IRQ_RTC, 2, IRQREG_LOCINT, LOCINT_RTC, 1, 6 }, @@ -222,17 +231,17 @@ const struct p5064_irqmap p5064_irqmap[NIRQMAPS] = { * ISA INTERRUPTS */ /* ISA bridge */ - { 13, 0, + { P5064_IRQ_ISABRIDGE, 0, IRQREG_ISAINT, ISAINT_ISABR, 0, 4 }, /* IDE 0 */ - { 14, 0, + { P5064_IRQ_IDE0, 0, IRQREG_ISAINT, ISAINT_IDE0, 3, 2 }, /* IDE 1 */ - { 15, 0, + { P5064_IRQ_IDE1, 0, IRQREG_ISAINT, ISAINT_IDE1, 3, 4 }, }; @@ -282,11 +291,15 @@ const char *p5064_intrgroups[NINTRS] = { "local", }; +void *algor_p5064_intr_establish(int, int (*)(void *), void *); +void algor_p5064_intr_disestablish(void *); + int algor_p5064_pci_intr_map(struct pci_attach_args *, pci_intr_handle_t *); const char *algor_p5064_pci_intr_string(void *, pci_intr_handle_t); const struct evcnt *algor_p5064_pci_intr_evcnt(void *, pci_intr_handle_t); void *algor_p5064_pci_intr_establish(void *, pci_intr_handle_t, int, int (*)(void *), void *); +void algor_p5064_pci_intr_disestablish(void *, void *); void *algor_p5064_pciide_compat_intr_establish(void *, struct device *, struct pci_attach_args *, int, int (*)(void *), void *); void algor_p5064_pci_conf_interrupt(void *, int, int, int, int, int *); @@ -294,6 +307,7 @@ void algor_p5064_pci_conf_interrupt(void *, int, int, int, int, int *); const struct evcnt *algor_p5064_isa_intr_evcnt(void *, int); void *algor_p5064_isa_intr_establish(void *, int, int, int, int (*)(void *), void *); +void algor_p5064_isa_intr_disestablish(void *, void *); int algor_p5064_isa_intr_alloc(void *, int, int, int *); void algor_p5064_iointr(u_int32_t, u_int32_t, u_int32_t, u_int32_t); @@ -333,7 +347,7 @@ algor_p5064_intr_init(struct p5064_config *acp) acp->ac_pc.pc_intr_string = algor_p5064_pci_intr_string; acp->ac_pc.pc_intr_evcnt = algor_p5064_pci_intr_evcnt; acp->ac_pc.pc_intr_establish = algor_p5064_pci_intr_establish; - acp->ac_pc.pc_intr_disestablish = algor_p5064_intr_disestablish; + acp->ac_pc.pc_intr_disestablish = algor_p5064_pci_intr_disestablish; acp->ac_pc.pc_conf_interrupt = algor_p5064_pci_conf_interrupt; acp->ac_pc.pc_pciide_compat_intr_establish = algor_p5064_pciide_compat_intr_establish; @@ -341,9 +355,11 @@ algor_p5064_intr_init(struct p5064_config *acp) acp->ac_ic.ic_v = NULL; acp->ac_ic.ic_intr_evcnt = algor_p5064_isa_intr_evcnt; acp->ac_ic.ic_intr_establish = algor_p5064_isa_intr_establish; - acp->ac_ic.ic_intr_disestablish = algor_p5064_intr_disestablish; + acp->ac_ic.ic_intr_disestablish = algor_p5064_isa_intr_disestablish; acp->ac_ic.ic_intr_alloc = algor_p5064_isa_intr_alloc; + algor_intr_establish = algor_p5064_intr_establish; + algor_intr_disestablish = algor_p5064_intr_disestablish; algor_iointr = algor_p5064_iointr; } @@ -413,12 +429,16 @@ algor_p5064_cal_timer(bus_space_tag_t st, bus_space_handle_t sh) } void * -algor_p5064_intr_establish(const struct p5064_irqmap *irqmap, - int (*func)(void *), void *arg) +algor_p5064_intr_establish(int irq, int (*func)(void *), void *arg) { + const struct p5064_irqmap *irqmap; struct algor_intrhand *ih; int s; + irqmap = &p5064_irqmap[irq]; + + KASSERT(irq == irqmap->irqidx); + ih = malloc(sizeof(*ih), M_DEVBUF, M_NOWAIT); if (ih == NULL) return (NULL); @@ -451,12 +471,14 @@ algor_p5064_intr_establish(const struct p5064_irqmap *irqmap, } void -algor_p5064_intr_disestablish(void *v, void *cookie) +algor_p5064_intr_disestablish(void *cookie) { const struct p5064_irqmap *irqmap; - struct algor_intrhand *ih = v; + struct algor_intrhand *ih = cookie; int s; + irqmap = ih->ih_irqmap; + s = splhigh(); /* @@ -621,7 +643,14 @@ algor_p5064_pci_intr_establish(void *v, pci_intr_handle_t ih, int level, if (ih >= NPCIIRQS) panic("algor_p5064_intr_establish: bogus IRQ %ld\n", ih); - return (algor_p5064_intr_establish(&p5064_irqmap[ih], func, arg)); + return (algor_p5064_intr_establish(ih, func, arg)); +} + +void +algor_p5064_pci_intr_disestablish(void *v, void *cookie) +{ + + return (algor_p5064_intr_disestablish(cookie)); } void @@ -640,7 +669,6 @@ void * algor_p5064_pciide_compat_intr_establish(void *v, struct device *dev, struct pci_attach_args *pa, int chan, int (*func)(void *), void *arg) { - const struct p5064_irqmap *irqmap; pci_chipset_tag_t pc = pa->pa_pc; void *cookie; int bus; @@ -653,14 +681,12 @@ algor_p5064_pciide_compat_intr_establish(void *v, struct device *dev, if (bus != 0) return (NULL); - irqmap = &p5064_irqmap[P5064_IRQ_IDE0 + chan]; - - cookie = algor_p5064_intr_establish(irqmap, func, arg); + cookie = algor_p5064_intr_establish(P5064_IRQ_IDE0 + chan, func, arg); if (cookie == NULL) return (NULL); printf("%s: %s channel interrupting at on-board %s IRQ\n", dev->dv_xname, PCIIDE_CHANNEL_NAME(chan), - p5064_intrnames[irqmap->irqidx]); + p5064_intrnames[P5064_IRQ_IDE0 + chan]); return (cookie); } @@ -688,7 +714,14 @@ algor_p5064_isa_intr_establish(void *v, int iirq, int type, int level, if ((irqidx = p5064_isa_to_irqmap[iirq]) == -1) return (NULL); - return (algor_p5064_intr_establish(&p5064_irqmap[irqidx], func, arg)); + return (algor_p5064_intr_establish(irqidx, func, arg)); +} + +void +algor_p5064_isa_intr_disestablish(void *v, void *cookie) +{ + + algor_p5064_intr_disestablish(cookie); } int diff --git a/sys/arch/algor/algor/algor_p5064var.h b/sys/arch/algor/algor/algor_p5064var.h index 232ad0cb8b53..783adf975a3b 100644 --- a/sys/arch/algor/algor/algor_p5064var.h +++ b/sys/arch/algor/algor/algor_p5064var.h @@ -1,4 +1,4 @@ -/* $NetBSD: algor_p5064var.h,v 1.3 2001/06/10 09:13:07 thorpej Exp $ */ +/* $NetBSD: algor_p5064var.h,v 1.4 2001/06/15 04:01:40 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -72,21 +72,7 @@ struct p5064_config { #define P5064_IRQ_IDE0 14 #define P5064_IRQ_IDE1 15 -struct p5064_irqmap { - int irqidx; - int cpuintr; - int irqreg; - int irqbit; - int xbarreg; - int xbarshift; -}; - -void algor_p5064_intr_disestablish(void *, void *); -void *algor_p5064_intr_establish(const struct p5064_irqmap *, - int (*)(void *), void *); - extern struct p5064_config p5064_configuration; -extern const struct p5064_irqmap p5064_irqmap[]; void algor_p5064_bus_io_init(bus_space_tag_t, void *); void algor_p5064_bus_mem_init(bus_space_tag_t, void *); diff --git a/sys/arch/algor/algor/interrupt.c b/sys/arch/algor/algor/interrupt.c index d77ffe8becb5..8060663d02f4 100644 --- a/sys/arch/algor/algor/interrupt.c +++ b/sys/arch/algor/algor/interrupt.c @@ -1,4 +1,4 @@ -/* $NetBSD: interrupt.c,v 1.4 2001/06/14 19:03:43 thorpej Exp $ */ +/* $NetBSD: interrupt.c,v 1.5 2001/06/15 04:01:40 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -62,6 +62,9 @@ #include #endif +void *(*algor_intr_establish)(int, int (*)(void *), void *); +void (*algor_intr_disestablish)(void *); + void (*algor_iointr)(u_int32_t, u_int32_t, u_int32_t, u_int32_t); struct algor_soft_intrhand *softnet_intrhand; diff --git a/sys/arch/algor/dev/com_mainbus.c b/sys/arch/algor/dev/com_mainbus.c index f80963e0d7e5..919fcb942279 100644 --- a/sys/arch/algor/dev/com_mainbus.c +++ b/sys/arch/algor/dev/com_mainbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: com_mainbus.c,v 1.2 2001/06/10 05:26:59 thorpej Exp $ */ +/* $NetBSD: com_mainbus.c,v 1.3 2001/06/15 04:01:40 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -40,7 +40,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: com_mainbus.c,v 1.2 2001/06/10 05:26:59 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: com_mainbus.c,v 1.3 2001/06/15 04:01:40 thorpej Exp $"); #include #include @@ -64,10 +64,6 @@ __KERNEL_RCSID(0, "$NetBSD: com_mainbus.c,v 1.2 2001/06/10 05:26:59 thorpej Exp #include #include -#if defined(ALGOR_P4032) -#include -#endif - struct com_mainbus_softc { struct com_softc sc_com; /* real "com" softc */ @@ -117,11 +113,7 @@ com_mainbus_attach(struct device *parent, struct device *self, void *aux) com_attach_subr(sc); -#if defined(ALGOR_P4032) - msc->sc_ih = algor_p4032_intr_establish(&p4032_irqmap[ma->ma_irq], - comintr, sc); -#endif - + msc->sc_ih = (*algor_intr_establish)(ma->ma_irq, comintr, sc); if (msc->sc_ih == NULL) { printf("%s: unable to establish interrupt\n", sc->sc_dev.dv_xname); diff --git a/sys/arch/algor/dev/lpt_mainbus.c b/sys/arch/algor/dev/lpt_mainbus.c index 3f4adbf8f1b7..71db84dff311 100644 --- a/sys/arch/algor/dev/lpt_mainbus.c +++ b/sys/arch/algor/dev/lpt_mainbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: lpt_mainbus.c,v 1.2 2001/06/10 05:26:59 thorpej Exp $ */ +/* $NetBSD: lpt_mainbus.c,v 1.3 2001/06/15 04:01:40 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: lpt_mainbus.c,v 1.2 2001/06/10 05:26:59 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lpt_mainbus.c,v 1.3 2001/06/15 04:01:40 thorpej Exp $"); #include #include @@ -62,10 +62,6 @@ __KERNEL_RCSID(0, "$NetBSD: lpt_mainbus.c,v 1.2 2001/06/10 05:26:59 thorpej Exp #include #include -#if defined(ALGOR_P4032) -#include -#endif - struct lpt_mainbus_softc { struct lpt_softc sc_lpt; /* real "lpt" softc */ @@ -112,11 +108,7 @@ lpt_mainbus_attach(struct device *parent, struct device *self, void *aux) lpt_attach_subr(sc); -#if defined(ALGOR_P4032) - sc->sc_ih = algor_p4032_intr_establish(&p4032_irqmap[ma->ma_irq], - lptintr, sc); -#endif - + sc->sc_ih = (*algor_intr_establish)(ma->ma_irq, lptintr, sc); if (msc->sc_ih == NULL) { printf("%s: unable to establish interrupt\n", sc->sc_dev.dv_xname); diff --git a/sys/arch/algor/include/intr.h b/sys/arch/algor/include/intr.h index 83de7a37b8de..b69a5c269af3 100644 --- a/sys/arch/algor/include/intr.h +++ b/sys/arch/algor/include/intr.h @@ -1,4 +1,4 @@ -/* $NetBSD: intr.h,v 1.3 2001/06/10 09:13:07 thorpej Exp $ */ +/* $NetBSD: intr.h,v 1.4 2001/06/15 04:01:40 thorpej Exp $ */ /*- * Copyright (c) 2000, 2001 The NetBSD Foundation, Inc. @@ -174,6 +174,8 @@ extern struct algor_soft_intrhand *softnet_intrhand; extern struct evcnt mips_int5_evcnt; void intr_init(void); +void *(*algor_intr_establish)(int, int (*)(void *), void *); +void (*algor_intr_disestablish)(void *); #endif /* _KERNEL */ #endif /* ! _ALGOR_INTR_H_ */ diff --git a/sys/arch/algor/pci/pcib.c b/sys/arch/algor/pci/pcib.c index d36a2da9866c..bd8e3fe85db6 100644 --- a/sys/arch/algor/pci/pcib.c +++ b/sys/arch/algor/pci/pcib.c @@ -1,4 +1,4 @@ -/* $NetBSD: pcib.c,v 1.4 2001/06/10 09:28:26 thorpej Exp $ */ +/* $NetBSD: pcib.c,v 1.5 2001/06/15 04:01:41 thorpej Exp $ */ /*- * Copyright (c) 2000, 2001 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: pcib.c,v 1.4 2001/06/10 09:28:26 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pcib.c,v 1.5 2001/06/15 04:01:41 thorpej Exp $"); #include "opt_algor_p5064.h" #include "opt_algor_p6032.h" @@ -270,10 +270,10 @@ pcib_attach(struct device *parent, struct device *self, void *aux) /* Hook up our interrupt handler. */ #if defined(ALGOR_P5064) - sc->sc_ih = algor_p5064_intr_establish(&p5064_irqmap[ - P5064_IRQ_ISABRIDGE], pcib_intr, sc); + sc->sc_ih = (*algor_intr_establish)(P5064_IRQ_ISABRIDGE, + pcib_intr, sc); #elif defined(ALGOR_P6032) - sc->sc_ih = algor_p6032_intr_establish(&p6032_irqmap[XXX], + sc->sc_ih = (*algor_intr_establish)(XXX, pcib_intr, sc); #endif if (sc->sc_ih == NULL)