Module Name: src Committed By: matt Date: Fri Dec 7 22:47:13 UTC 2012
Modified Files: src/sys/arch/arm/broadcom [matt-nb6-plus]: bcm53xx_eth.c files.bcm53xx Log Message: Sync with HEAD. To generate a diff of this commit: cvs rdiff -u -r1.17.2.2 -r1.17.2.3 src/sys/arch/arm/broadcom/bcm53xx_eth.c cvs rdiff -u -r1.2.4.2 -r1.2.4.3 src/sys/arch/arm/broadcom/files.bcm53xx Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.17.2.2 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.17.2.3 --- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.17.2.2 Wed Nov 28 22:40:22 2012 +++ src/sys/arch/arm/broadcom/bcm53xx_eth.c Fri Dec 7 22:47:13 2012 @@ -31,10 +31,11 @@ #define GMAC_PRIVATE #include "locators.h" +#include "opt_broadcom.h" #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.17.2.2 2012/11/28 22:40:22 matt Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.17.2.3 2012/12/07 22:47:13 matt Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -63,6 +64,13 @@ __KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth. //#define BCMETH_MPSAFE +#ifdef BCMETH_COUNTERS +#define BCMETH_EVCNT_ADD(a,b) ((void)((a).ev_count += (b))) +#else +#define BCMETH_EVCNT_ADD(a,b) do { } while (/*CONSTCOND*/0) +#endif +#define BCMETH_EVCNT_INCR(a) BCMETH_EVCNT_ADD((a), 1) + #define BCMETH_RCVOFFSET 10 #define BCMETH_MAXTXMBUFS 128 #define BCMETH_NTXSEGS 30 @@ -148,12 +156,14 @@ struct bcmeth_softc { #define SOFT_RXINTR 0x01 #define SOFT_TXINTR 0x02 +#ifdef BCMETH_COUNTERS struct evcnt sc_ev_intr; struct evcnt sc_ev_soft_intr; struct evcnt sc_ev_work; struct evcnt sc_ev_tx_stall; struct evcnt sc_ev_rx_badmagic_lo; struct evcnt sc_ev_rx_badmagic_hi; +#endif struct ifqueue sc_rx_bufcache; struct bcmeth_mapcache *sc_rx_mapcache; @@ -386,6 +396,7 @@ bcmeth_ccb_attach(device_t parent, devic if_attach(ifp); ether_ifattach(ifp, sc->sc_enaddr); +#ifdef BCMETH_COUNTERS evcnt_attach_dynamic(&sc->sc_ev_intr, EVCNT_TYPE_INTR, NULL, xname, "intr"); evcnt_attach_dynamic(&sc->sc_ev_soft_intr, EVCNT_TYPE_INTR, @@ -398,6 +409,7 @@ bcmeth_ccb_attach(device_t parent, devic NULL, xname, "rx badmagic lo"); evcnt_attach_dynamic(&sc->sc_ev_rx_badmagic_hi, EVCNT_TYPE_MISC, NULL, xname, "rx badmagic hi"); +#endif } static int @@ -1056,9 +1068,9 @@ bcmeth_rxq_consume( if (rxsts == BCMETH_RCVMAGIC) { ifp->if_ierrors++; if ((m->m_ext.ext_paddr >> 28) == 8) { - sc->sc_ev_rx_badmagic_lo.ev_count++; + BCMETH_EVCNT_INCR(sc->sc_ev_rx_badmagic_lo); } else { - sc->sc_ev_rx_badmagic_hi.ev_count++; + BCMETH_EVCNT_INCR( sc->sc_ev_rx_badmagic_hi); } IF_ENQUEUE(&sc->sc_rx_bufcache, m); } else @@ -1709,7 +1721,7 @@ bcmeth_intr(void *arg) mutex_enter(sc->sc_hwlock); uint32_t intmask = sc->sc_intmask; - sc->sc_ev_intr.ev_count++; + BCMETH_EVCNT_INCR(sc->sc_ev_intr); for (;;) { uint32_t intstatus = bcmeth_read_4(sc, GMAC_INTSTATUS); @@ -1821,7 +1833,7 @@ bcmeth_soft_txintr(struct bcmeth_softc * */ if (!bcmeth_txq_consume(sc, &sc->sc_txq) || !bcmeth_txq_enqueue(sc, &sc->sc_txq)) { - sc->sc_ev_tx_stall.ev_count++; + BCMETH_EVCNT_INCR(sc->sc_ev_tx_stall); sc->sc_if.if_flags |= IFF_OACTIVE; } else { sc->sc_if.if_flags &= ~IFF_OACTIVE; @@ -1847,7 +1859,7 @@ bcmeth_soft_intr(void *arg) u_int soft_flags = atomic_swap_uint(&sc->sc_soft_flags, 0); - sc->sc_ev_soft_intr.ev_count++; + BCMETH_EVCNT_INCR(sc->sc_ev_soft_intr); if ((soft_flags & SOFT_TXINTR) || bcmeth_txq_active_p(sc, &sc->sc_txq)) { @@ -1857,7 +1869,7 @@ bcmeth_soft_intr(void *arg) */ if (!bcmeth_txq_consume(sc, &sc->sc_txq) || !bcmeth_txq_enqueue(sc, &sc->sc_txq)) { - sc->sc_ev_tx_stall.ev_count++; + BCMETH_EVCNT_INCR(sc->sc_ev_tx_stall); ifp->if_flags |= IFF_OACTIVE; } else { ifp->if_flags &= ~IFF_OACTIVE; @@ -1893,7 +1905,7 @@ bcmeth_worker(struct work *wk, void *arg mutex_enter(sc->sc_lock); - sc->sc_ev_work.ev_count++; + BCMETH_EVCNT_INCR(sc->sc_ev_work); uint32_t work_flags = atomic_swap_32(&sc->sc_work_flags, 0); if (work_flags & WORK_REINIT) { Index: src/sys/arch/arm/broadcom/files.bcm53xx diff -u src/sys/arch/arm/broadcom/files.bcm53xx:1.2.4.2 src/sys/arch/arm/broadcom/files.bcm53xx:1.2.4.3 --- src/sys/arch/arm/broadcom/files.bcm53xx:1.2.4.2 Wed Nov 28 22:40:24 2012 +++ src/sys/arch/arm/broadcom/files.bcm53xx Fri Dec 7 22:47:13 2012 @@ -1,4 +1,4 @@ -# $NetBSD: files.bcm53xx,v 1.2.4.2 2012/11/28 22:40:24 matt Exp $ +# $NetBSD: files.bcm53xx,v 1.2.4.3 2012/12/07 22:47:13 matt Exp $ # # Configuration info for Broadcom BCM5301X ARM Peripherals # @@ -20,6 +20,7 @@ defparam opt_broadcom.h CONSPEED defparam opt_broadcom.h CONMODE defparam opt_broadcom.h MEMSIZE defflag opt_broadcom.h BCM53XX_CONSOLE_EARLY +defflag opt_broadcom.h BCMETH_COUNTERS # ChipCommonA attach point device bcmcca { [channel=-1] } : bus_space_generic, gpiobus, sysmon_wdog