Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Aug 2010 21:31:30 +0000 (UTC)
From:      Oleksandr Tymoshenko <gonzo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r210900 - head/sys/mips/atheros
Message-ID:  <201008052131.o75LVUsg011630@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gonzo
Date: Thu Aug  5 21:31:29 2010
New Revision: 210900
URL: http://svn.freebsd.org/changeset/base/210900

Log:
  - Add interrupts counter for PCI devices

Modified:
  head/sys/mips/atheros/ar71xx_pci.c

Modified: head/sys/mips/atheros/ar71xx_pci.c
==============================================================================
--- head/sys/mips/atheros/ar71xx_pci.c	Thu Aug  5 21:01:35 2010	(r210899)
+++ head/sys/mips/atheros/ar71xx_pci.c	Thu Aug  5 21:31:29 2010	(r210900)
@@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$");
 
 #include <machine/bus.h>
 #include <machine/cpu.h>
+#include <machine/intr_machdep.h>
 #include <machine/pmap.h>
 
 #include <dev/pci/pcivar.h>
@@ -70,6 +71,7 @@ struct ar71xx_pci_softc {
 	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;
 };
@@ -436,13 +438,20 @@ ar71xx_pci_setup_intr(device_t bus, devi
 	if (event == NULL) {
 		error = intr_event_create(&event, (void *)irq, 0, irq, 
 		    ar71xx_pci_mask_irq, ar71xx_pci_unmask_irq, NULL, NULL,
-		    "ar71xx_pci intr%d:", irq);
+		    "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 @@ ar71xx_pci_intr(void *arg)
 
 			/* TODO: frame instead of NULL? */
 			intr_event_handle(event, NULL);
+			mips_intrcnt_inc(sc->sc_intr_counter[irq]);
 		}
 	}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008052131.o75LVUsg011630>