diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-10-07 15:10:20 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-01-10 09:53:31 +0100 |
commit | c40e45b75eb76d79a05c7fa85c1fa9b5c728a12f (patch) | |
tree | ad4f2519067709f00ab98b3c591186c26dc3a21f /freebsd/sys/dev/dc | |
parent | userspace-header-gen.py: Simplify program ports (diff) | |
download | rtems-libbsd-c40e45b75eb76d79a05c7fa85c1fa9b5c728a12f.tar.bz2 |
Update to FreeBSD head 2016-08-23
Git mirror commit 9fe7c416e6abb28b1398fd3e5687099846800cfd.
Diffstat (limited to 'freebsd/sys/dev/dc')
-rw-r--r-- | freebsd/sys/dev/dc/dcphy.c | 17 | ||||
-rw-r--r-- | freebsd/sys/dev/dc/if_dc.c | 46 | ||||
-rw-r--r-- | freebsd/sys/dev/dc/pnphy.c | 7 |
3 files changed, 34 insertions, 36 deletions
diff --git a/freebsd/sys/dev/dc/dcphy.c b/freebsd/sys/dev/dc/dcphy.c index 32d11c61..76170aa0 100644 --- a/freebsd/sys/dev/dc/dcphy.c +++ b/freebsd/sys/dev/dc/dcphy.c @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include <sys/bus.h> #include <net/if.h> +#include <net/if_var.h> #include <net/if_arp.h> #include <net/if_media.h> @@ -154,7 +155,7 @@ dcphy_attach(device_t dev) &dcphy_funcs, 0); /*PHY_RESET(sc);*/ - dc_sc = sc->mii_pdata->mii_ifp->if_softc; + dc_sc = if_getsoftc(sc->mii_pdata->mii_ifp); CSR_WRITE_4(dc_sc, DC_10BTSTAT, 0); CSR_WRITE_4(dc_sc, DC_10BTCTRL, 0); @@ -192,7 +193,7 @@ dcphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) int reg; u_int32_t mode; - dc_sc = mii->mii_ifp->if_softc; + dc_sc = if_getsoftc(mii->mii_ifp); switch (cmd) { case MII_POLLSTAT: @@ -202,7 +203,7 @@ dcphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) /* * If the interface is not up, don't do anything. */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) + if ((if_getflags(mii->mii_ifp) & IFF_UP) == 0) break; mii->mii_media_active = IFM_NONE; @@ -252,7 +253,7 @@ dcphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) /* * Is the interface even up? */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) + if ((if_getflags(mii->mii_ifp) & IFF_UP) == 0) return (0); /* @@ -299,12 +300,12 @@ dcphy_status(struct mii_softc *sc) int anlpar, tstat; struct dc_softc *dc_sc; - dc_sc = mii->mii_ifp->if_softc; + dc_sc = if_getsoftc(mii->mii_ifp); mii->mii_media_status = IFM_AVALID; mii->mii_media_active = IFM_ETHER; - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) + if ((if_getflags(mii->mii_ifp) & IFF_UP) == 0) return; tstat = CSR_READ_4(dc_sc, DC_10BTSTAT); @@ -379,7 +380,7 @@ dcphy_auto(struct mii_softc *mii) { struct dc_softc *sc; - sc = mii->mii_pdata->mii_ifp->if_softc; + sc = if_getsoftc(mii->mii_pdata->mii_ifp); DC_CLRBIT(sc, DC_NETCFG, DC_NETCFG_PORTSEL); DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_FULLDUPLEX); @@ -400,7 +401,7 @@ dcphy_reset(struct mii_softc *mii) { struct dc_softc *sc; - sc = mii->mii_pdata->mii_ifp->if_softc; + sc = if_getsoftc(mii->mii_pdata->mii_ifp); DC_CLRBIT(sc, DC_SIARESET, DC_SIA_RESET); DELAY(1000); diff --git a/freebsd/sys/dev/dc/if_dc.c b/freebsd/sys/dev/dc/if_dc.c index 0c7a46cb..5b0aaffd 100644 --- a/freebsd/sys/dev/dc/if_dc.c +++ b/freebsd/sys/dev/dc/if_dc.c @@ -109,6 +109,7 @@ __FBSDID("$FreeBSD$"); #include <sys/socket.h> #include <net/if.h> +#include <net/if_var.h> #include <net/if_arp.h> #include <net/ethernet.h> #include <net/if_dl.h> @@ -672,20 +673,16 @@ dc_miibus_readreg(device_t dev, int phy, int reg) * code think there's a PHY here. */ return (BMSR_MEDIAMASK); - break; case MII_PHYIDR1: if (DC_IS_PNIC(sc)) return (DC_VENDORID_LO); return (DC_VENDORID_DEC); - break; case MII_PHYIDR2: if (DC_IS_PNIC(sc)) return (DC_DEVICEID_82C168); return (DC_DEVICEID_21143); - break; default: return (0); - break; } } else return (0); @@ -749,7 +746,6 @@ dc_miibus_readreg(device_t dev, int phy, int reg) device_printf(dev, "phy_read: bad phy register %x\n", reg); return (0); - break; } rval = CSR_READ_4(sc, phy_reg) & 0x0000FFFF; @@ -1983,9 +1979,9 @@ dc_dma_free(struct dc_softc *sc) /* RX descriptor list. */ if (sc->dc_rx_ltag) { - if (sc->dc_rx_lmap != NULL) + if (sc->dc_ldata.dc_rx_list_paddr != 0) bus_dmamap_unload(sc->dc_rx_ltag, sc->dc_rx_lmap); - if (sc->dc_rx_lmap != NULL && sc->dc_ldata.dc_rx_list != NULL) + if (sc->dc_ldata.dc_rx_list != NULL) bus_dmamem_free(sc->dc_rx_ltag, sc->dc_ldata.dc_rx_list, sc->dc_rx_lmap); bus_dma_tag_destroy(sc->dc_rx_ltag); @@ -1993,9 +1989,9 @@ dc_dma_free(struct dc_softc *sc) /* TX descriptor list. */ if (sc->dc_tx_ltag) { - if (sc->dc_tx_lmap != NULL) + if (sc->dc_ldata.dc_tx_list_paddr != 0) bus_dmamap_unload(sc->dc_tx_ltag, sc->dc_tx_lmap); - if (sc->dc_tx_lmap != NULL && sc->dc_ldata.dc_tx_list != NULL) + if (sc->dc_ldata.dc_tx_list != NULL) bus_dmamem_free(sc->dc_tx_ltag, sc->dc_ldata.dc_tx_list, sc->dc_tx_lmap); bus_dma_tag_destroy(sc->dc_tx_ltag); @@ -2003,9 +1999,9 @@ dc_dma_free(struct dc_softc *sc) /* multicast setup frame. */ if (sc->dc_stag) { - if (sc->dc_smap != NULL) + if (sc->dc_saddr != 0) bus_dmamap_unload(sc->dc_stag, sc->dc_smap); - if (sc->dc_smap != NULL && sc->dc_cdata.dc_sbuf != NULL) + if (sc->dc_cdata.dc_sbuf != NULL) bus_dmamem_free(sc->dc_stag, sc->dc_cdata.dc_sbuf, sc->dc_smap); bus_dma_tag_destroy(sc->dc_stag); @@ -2485,7 +2481,7 @@ dc_attach(device_t dev) /* * Tell the upper layer(s) we support long frames. */ - ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header); + ifp->if_hdrlen = sizeof(struct ether_vlan_header); ifp->if_capabilities |= IFCAP_VLAN_MTU; ifp->if_capenable = ifp->if_capabilities; #ifdef DEVICE_POLLING @@ -2916,9 +2912,9 @@ dc_rxeof(struct dc_softc *sc) (rxstat & (DC_RXSTAT_CRCERR | DC_RXSTAT_DRIBBLE | DC_RXSTAT_MIIERE | DC_RXSTAT_COLLSEEN | DC_RXSTAT_RUNT | DC_RXSTAT_DE))) { - ifp->if_ierrors++; + if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); if (rxstat & DC_RXSTAT_COLLSEEN) - ifp->if_collisions++; + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, 1); dc_discard_rxbuf(sc, i); if (rxstat & DC_RXSTAT_CRCERR) continue; @@ -2944,7 +2940,7 @@ dc_rxeof(struct dc_softc *sc) */ if (dc_newbuf(sc, i) != 0) { dc_discard_rxbuf(sc, i); - ifp->if_iqdrops++; + if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1); continue; } m->m_pkthdr.rcvif = ifp; @@ -2957,14 +2953,14 @@ dc_rxeof(struct dc_softc *sc) ETHER_ALIGN, ifp, NULL); dc_discard_rxbuf(sc, i); if (m0 == NULL) { - ifp->if_iqdrops++; + if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1); continue; } m = m0; } #endif - ifp->if_ipackets++; + if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); DC_UNLOCK(sc); (*ifp->if_input)(ifp, m); DC_LOCK(sc); @@ -3055,19 +3051,19 @@ dc_txeof(struct dc_softc *sc) } if (txstat & DC_TXSTAT_ERRSUM) { - ifp->if_oerrors++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); if (txstat & DC_TXSTAT_EXCESSCOLL) - ifp->if_collisions++; + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, 1); if (txstat & DC_TXSTAT_LATECOLL) - ifp->if_collisions++; + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, 1); if (!(txstat & DC_TXSTAT_UNDERRUN)) { ifp->if_drv_flags &= ~IFF_DRV_RUNNING; dc_init_locked(sc); return; } } else - ifp->if_opackets++; - ifp->if_collisions += (txstat & DC_TXSTAT_COLLCNT) >> 3; + if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, (txstat & DC_TXSTAT_COLLCNT) >> 3); bus_dmamap_sync(sc->dc_tx_mtag, sc->dc_cdata.dc_tx_map[idx], BUS_DMASYNC_POSTWRITE); @@ -3262,7 +3258,7 @@ dc_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) if (status & (DC_ISR_RX_WATDOGTIMEO | DC_ISR_RX_NOBUF)) { uint32_t r = CSR_READ_4(sc, DC_FRAMESDISCARDED); - ifp->if_ierrors += (r & 0xffff) + ((r >> 17) & 0x7ff); + if_inc_counter(ifp, IFCOUNTER_IERRORS, (r & 0xffff) + ((r >> 17) & 0x7ff)); if (dc_rx_resync(sc)) dc_rxeof(sc); @@ -3344,7 +3340,7 @@ dc_intr(void *arg) if ((status & DC_ISR_RX_WATDOGTIMEO) || (status & DC_ISR_RX_NOBUF)) { r = CSR_READ_4(sc, DC_FRAMESDISCARDED); - ifp->if_ierrors += (r & 0xffff) + ((r >> 17) & 0x7ff); + if_inc_counter(ifp, IFCOUNTER_IERRORS, (r & 0xffff) + ((r >> 17) & 0x7ff)); if (dc_rxeof(sc) == 0) { while (dc_rx_resync(sc)) dc_rxeof(sc); @@ -3942,7 +3938,7 @@ dc_watchdog(void *xsc) } ifp = sc->dc_ifp; - ifp->if_oerrors++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); device_printf(sc->dc_dev, "watchdog timeout\n"); ifp->if_drv_flags &= ~IFF_DRV_RUNNING; diff --git a/freebsd/sys/dev/dc/pnphy.c b/freebsd/sys/dev/dc/pnphy.c index a9a8ec93..5f1c52f2 100644 --- a/freebsd/sys/dev/dc/pnphy.c +++ b/freebsd/sys/dev/dc/pnphy.c @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include <sys/bus.h> #include <net/if.h> +#include <net/if_var.h> #include <net/if_arp.h> #include <net/if_media.h> @@ -153,7 +154,7 @@ pnphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) /* * If the interface is not up, don't do anything. */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) + if ((if_getflags(mii->mii_ifp) & IFF_UP) == 0) break; /* @@ -181,7 +182,7 @@ pnphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) /* * Is the interface even up? */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) + if ((if_getflags(mii->mii_ifp) & IFF_UP) == 0) return (0); break; @@ -202,7 +203,7 @@ pnphy_status(struct mii_softc *sc) int reg; struct dc_softc *dc_sc; - dc_sc = mii->mii_ifp->if_softc; + dc_sc = if_getsoftc(mii->mii_ifp); mii->mii_media_status = IFM_AVALID; mii->mii_media_active = IFM_ETHER; |