From 61e7a6b1f9b9b784dd7cf43ff4d967cd01aee63b Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Thu, 5 Jul 2018 17:10:16 -0400 Subject: [PATCH] 3com: Sync with FreeBSD 11.1. No functional changes to the actual driver, it seems. --- .../kernel/drivers/network/3com/Jamfile | 28 ++++++++++++++++++- .../kernel/drivers/network/3com/dev/Jamfile | 4 --- .../drivers/network/3com/dev/mii/Jamfile | 23 --------------- .../drivers/network/3com/dev/mii/bmtphy.c | 8 +----- .../drivers/network/3com/dev/mii/bmtphyreg.h | 2 +- .../drivers/network/3com/dev/mii/ukphy.c | 8 +----- .../drivers/network/3com/dev/mii/ukphy_subr.c | 2 +- .../drivers/network/3com/dev/xl/Jamfile | 22 --------------- .../drivers/network/3com/dev/xl/if_xl.c | 26 +++++++++-------- .../drivers/network/3com/dev/xl/xlphy.c | 14 +--------- .../drivers/network/3com/{dev/xl => }/glue.c | 8 ++---- src/add-ons/kernel/drivers/network/Jamfile | 2 +- 12 files changed, 50 insertions(+), 97 deletions(-) delete mode 100644 src/add-ons/kernel/drivers/network/3com/dev/Jamfile delete mode 100644 src/add-ons/kernel/drivers/network/3com/dev/mii/Jamfile delete mode 100644 src/add-ons/kernel/drivers/network/3com/dev/xl/Jamfile rename src/add-ons/kernel/drivers/network/3com/{dev/xl => }/glue.c (93%) diff --git a/src/add-ons/kernel/drivers/network/3com/Jamfile b/src/add-ons/kernel/drivers/network/3com/Jamfile index 1ce0f507de..695ce1238a 100644 --- a/src/add-ons/kernel/drivers/network/3com/Jamfile +++ b/src/add-ons/kernel/drivers/network/3com/Jamfile @@ -1,3 +1,29 @@ SubDir HAIKU_TOP src add-ons kernel drivers network 3com ; -SubInclude HAIKU_TOP src add-ons kernel drivers network 3com dev ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd11_network compat ] + : true ; +UsePrivateHeaders net system ; +UsePrivateKernelHeaders ; + +SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ; + +UseHeaders [ FDirName $(SUBDIR) ] : true ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) dev mii ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) dev xl ] ; + +KernelAddon 3com : + glue.c + if_xl.c + xlphy.c + bmtphy.c + ukphy.c + ukphy_subr.c + : libfreebsd11_network.a + ; + +ObjectHdrs [ FGristFiles bmtphy$(SUFOBJ) ukphy$(SUFOBJ) xlphy$(SUFOBJ) ] + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; +Includes [ FGristFiles bmtphy.c ukphy.c xlphy.c ] + : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/3com/dev/Jamfile b/src/add-ons/kernel/drivers/network/3com/dev/Jamfile deleted file mode 100644 index 0a072bc397..0000000000 --- a/src/add-ons/kernel/drivers/network/3com/dev/Jamfile +++ /dev/null @@ -1,4 +0,0 @@ -SubDir HAIKU_TOP src add-ons kernel drivers network 3com dev ; - -SubInclude HAIKU_TOP src add-ons kernel drivers network 3com dev mii ; -SubInclude HAIKU_TOP src add-ons kernel drivers network 3com dev xl ; diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/3com/dev/mii/Jamfile deleted file mode 100644 index a68d82f21f..0000000000 --- a/src/add-ons/kernel/drivers/network/3com/dev/mii/Jamfile +++ /dev/null @@ -1,23 +0,0 @@ -SubDir HAIKU_TOP src add-ons kernel drivers network 3com dev mii ; - -UseHeaders [ FDirName $(SUBDIR) .. .. ] : true ; -UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] - : true ; - -UsePrivateHeaders net system ; -UsePrivateKernelHeaders ; - -SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ; - -KernelStaticLibrary 3com_mii.a - : - bmtphy.c - ukphy.c - ukphy_subr.c - ; - -ObjectHdrs [ FGristFiles bmtphy$(SUFOBJ) ukphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs - compat freebsd_network ] ; -Includes [ FGristFiles bmtphy.c ukphy.c ] - : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphy.c b/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphy.c index 81c2bd2ae1..dd05e821f2 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphy.c +++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphy.c @@ -56,7 +56,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/bmtphy.c 257184 2013-10-26 18:40:17Z glebius $"); /* * Driver for the Broadcom BCM5201/BCM5202 "Mini-Theta" PHYs. This also @@ -159,12 +159,6 @@ bmtphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) break; case MII_MEDIACHG: - /* - * If the interface is not up, don't do anything. - */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) - break; - mii_phy_setmedia(sc); break; diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphyreg.h b/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphyreg.h index 6aa141deb4..1acdf75d81 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphyreg.h +++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphyreg.h @@ -28,7 +28,7 @@ * * from NetBSD: bmtphyreg.h,v 1.1 2001/06/02 21:42:10 thorpej Exp * - * $FreeBSD$ + * $FreeBSD: releng/11.1/sys/dev/mii/bmtphyreg.h 204646 2010-03-03 17:55:51Z joel $ */ #ifndef _DEV_MII_BMTPHYREG_H_ diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy.c b/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy.c index 9d52eb580c..a4004afdb5 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy.c +++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy.c @@ -55,7 +55,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy.c 257184 2013-10-26 18:40:17Z glebius $"); /* * driver for generic unknown PHYs @@ -140,12 +140,6 @@ ukphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) break; case MII_MEDIACHG: - /* - * If the interface is not up, don't do anything. - */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) - break; - mii_phy_setmedia(sc); break; diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy_subr.c b/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy_subr.c index 5f2f6341ba..f78b4e5e3b 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy_subr.c +++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy_subr.c @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy_subr.c 215297 2010-11-14 13:26:10Z marius $"); /* * Subroutines shared by the ukphy driver and other PHY drivers. diff --git a/src/add-ons/kernel/drivers/network/3com/dev/xl/Jamfile b/src/add-ons/kernel/drivers/network/3com/dev/xl/Jamfile deleted file mode 100644 index ba110e7f01..0000000000 --- a/src/add-ons/kernel/drivers/network/3com/dev/xl/Jamfile +++ /dev/null @@ -1,22 +0,0 @@ -SubDir HAIKU_TOP src add-ons kernel drivers network 3com dev xl ; - -UseHeaders [ FDirName $(SUBDIR) .. .. ] : true ; -UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] : true ; - -UsePrivateHeaders net system ; -UsePrivateKernelHeaders ; - -SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ; - -KernelAddon 3com : - if_xl.c - glue.c - xlphy.c - : libfreebsd_network.a 3com_mii.a - ; - -ObjectHdrs [ FGristFiles xlphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs - compat freebsd_network ] ; -Includes [ FGristFiles xlphy.c ] - : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xl.c b/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xl.c index ccabc08399..d58b714e11 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xl.c +++ b/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xl.c @@ -1873,7 +1873,7 @@ again: * comes up in the ring. */ if (rxstat & XL_RXSTAT_UP_ERROR) { - ifp->if_ierrors++; + if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); cur_rx->xl_ptr->xl_status = 0; bus_dmamap_sync(sc->xl_ldata.xl_rx_tag, sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE); @@ -1888,7 +1888,7 @@ again: if (!(rxstat & XL_RXSTAT_UP_CMPLT)) { device_printf(sc->xl_dev, "bad receive status -- packet dropped\n"); - ifp->if_ierrors++; + if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); cur_rx->xl_ptr->xl_status = 0; bus_dmamap_sync(sc->xl_ldata.xl_rx_tag, sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE); @@ -1908,7 +1908,7 @@ again: * can do in this situation. */ if (xl_newbuf(sc, cur_rx)) { - ifp->if_ierrors++; + if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); cur_rx->xl_ptr->xl_status = 0; bus_dmamap_sync(sc->xl_ldata.xl_rx_tag, sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE); @@ -1917,7 +1917,7 @@ again: bus_dmamap_sync(sc->xl_ldata.xl_rx_tag, sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE); - ifp->if_ipackets++; + if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); m->m_pkthdr.rcvif = ifp; m->m_pkthdr.len = m->m_len = total_len; @@ -2021,7 +2021,7 @@ xl_txeof(struct xl_softc *sc) bus_dmamap_unload(sc->xl_mtag, cur_tx->xl_map); m_freem(cur_tx->xl_mbuf); cur_tx->xl_mbuf = NULL; - ifp->if_opackets++; + if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; cur_tx->xl_next = sc->xl_cdata.xl_tx_free; @@ -2068,7 +2068,7 @@ xl_txeof_90xB(struct xl_softc *sc) cur_tx->xl_mbuf = NULL; } - ifp->if_opackets++; + if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); sc->xl_cdata.xl_tx_cnt--; XL_INC(idx, XL_TX_LIST_CNT); @@ -2198,7 +2198,7 @@ xl_intr(void *arg) } if (status & XL_STAT_TX_COMPLETE) { - ifp->if_oerrors++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); xl_txeoc(sc); } @@ -2275,7 +2275,7 @@ xl_poll_locked(struct ifnet *ifp, enum poll_cmd cmd, int count) XL_CMD_INTR_ACK|(status & XL_INTRS)); if (status & XL_STAT_TX_COMPLETE) { - ifp->if_oerrors++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); xl_txeoc(sc); } @@ -2332,10 +2332,12 @@ xl_stats_update(struct xl_softc *sc) for (i = 0; i < 16; i++) *p++ = CSR_READ_1(sc, XL_W6_CARRIER_LOST + i); - ifp->if_ierrors += xl_stats.xl_rx_overrun; + if_inc_counter(ifp, IFCOUNTER_IERRORS, xl_stats.xl_rx_overrun); - ifp->if_collisions += xl_stats.xl_tx_multi_collision + - xl_stats.xl_tx_single_collision + xl_stats.xl_tx_late_collision; + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, + xl_stats.xl_tx_multi_collision + + xl_stats.xl_tx_single_collision + + xl_stats.xl_tx_late_collision); /* * Boomerang and cyclone chips have an extra stats counter @@ -3141,7 +3143,7 @@ xl_watchdog(struct xl_softc *sc) return (0); } - ifp->if_oerrors++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); XL_SEL_WIN(4); status = CSR_READ_2(sc, XL_W4_MEDIA_STATUS); device_printf(sc->xl_dev, "watchdog timeout\n"); diff --git a/src/add-ons/kernel/drivers/network/3com/dev/xl/xlphy.c b/src/add-ons/kernel/drivers/network/3com/dev/xl/xlphy.c index 2fe9e0d905..68b8088ae5 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/xl/xlphy.c +++ b/src/add-ons/kernel/drivers/network/3com/dev/xl/xlphy.c @@ -55,7 +55,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: releng/11.1/sys/dev/xl/xlphy.c 257184 2013-10-26 18:40:17Z glebius $"); /* * driver for 3Com internal PHYs @@ -152,22 +152,10 @@ xlphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) break; case MII_MEDIACHG: - /* - * If the interface is not up, don't do anything. - */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) - break; - mii_phy_setmedia(sc); break; case MII_TICK: - /* - * Is the interface even up? - */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) - return (0); - /* * The 3Com PHY's autonegotiation doesn't need to be * kicked; it continues in the background. diff --git a/src/add-ons/kernel/drivers/network/3com/dev/xl/glue.c b/src/add-ons/kernel/drivers/network/3com/glue.c similarity index 93% rename from src/add-ons/kernel/drivers/network/3com/dev/xl/glue.c rename to src/add-ons/kernel/drivers/network/3com/glue.c index f17beb9199..2b29453185 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/xl/glue.c +++ b/src/add-ons/kernel/drivers/network/3com/glue.c @@ -16,6 +16,7 @@ HAIKU_FBSD_DRIVER_GLUE(3com, xl, pci); +HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_SWI_TASKQUEUE); extern driver_t *DRIVER_MODULE_NAME(bmtphy, miibus); extern driver_t *DRIVER_MODULE_NAME(ukphy, miibus); @@ -37,7 +38,7 @@ __haiku_select_miibus_driver(device_t dev) int -__haiku_disable_interrupts(device_t dev) +HAIKU_CHECK_DISABLE_INTERRUPTS(device_t dev) { struct xl_softc *sc = device_get_softc(dev); u_int16_t status = CSR_READ_2(sc, XL_STATUS); @@ -53,11 +54,8 @@ __haiku_disable_interrupts(device_t dev) void -__haiku_reenable_interrupts(device_t dev) +HAIKU_REENABLE_INTERRUPTS(device_t dev) { struct xl_softc *sc = device_get_softc(dev); CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_STAT_ENB | XL_INTRS); } - - -HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_SWI_TASKQUEUE); diff --git a/src/add-ons/kernel/drivers/network/Jamfile b/src/add-ons/kernel/drivers/network/Jamfile index 4de7a37c88..5283e33e96 100644 --- a/src/add-ons/kernel/drivers/network/Jamfile +++ b/src/add-ons/kernel/drivers/network/Jamfile @@ -19,13 +19,13 @@ SubInclude HAIKU_TOP src add-ons kernel drivers network wb840 ; #SubInclude HAIKU_TOP src add-ons kernel drivers network dp83815 # FreeBSD 9.2 drivers -SubInclude HAIKU_TOP src add-ons kernel drivers network 3com ; SubInclude HAIKU_TOP src add-ons kernel drivers network dec21xxx ; # FreeBSD 9.3 drivers SubInclude HAIKU_TOP src add-ons kernel drivers network jmicron2x0 ; # FreeBSD 11.1 drivers +SubInclude HAIKU_TOP src add-ons kernel drivers network 3com ; SubInclude HAIKU_TOP src add-ons kernel drivers network ar81xx ; SubInclude HAIKU_TOP src add-ons kernel drivers network atheros813x ; SubInclude HAIKU_TOP src add-ons kernel drivers network attansic_l1 ;