--- atheros/ar71xx_pci.c (revision 203955) +++ atheros/ar71xx_pci.c (local) @@ -44,6 +44,7 @@ #include #include +#include #include #include @@ -70,6 +71,7 @@ struct rman sc_irq_rman; struct intr_event *sc_eventstab[AR71XX_PCI_NIRQS]; + mips_intrcnt_t sc_intr_counter[AR71XX_PCI_NIRQS]; struct resource *sc_irq; void *sc_ih; }; @@ -438,11 +440,18 @@ ar71xx_pci_mask_irq, ar71xx_pci_unmask_irq, NULL, NULL, "ar71xx_pci intr%d:", irq); - sc->sc_eventstab[irq] = event; + if (error == 0) { + sc->sc_eventstab[irq] = event; + sc->sc_intr_counter[irq] = + mips_intrcnt_create(event->ie_name); + } + else + return error; } intr_event_add_handler(event, device_get_nameunit(child), filt, handler, arg, intr_priority(flags), flags, cookiep); + mips_intrcnt_setname(sc->sc_intr_counter[irq], event->ie_fullname); ar71xx_pci_unmask_irq((void*)irq); @@ -497,6 +506,7 @@ /* TODO: frame instead of NULL? */ intr_event_handle(event, NULL); + mips_intrcnt_inc(sc->sc_intr_counter[irq]); } }