Module Name: src Committed By: msaitoh Date: Wed May 29 07:46:09 UTC 2019
Modified Files: src/sys/arch/mips/cavium/dev: if_cnmac.c Log Message: - Simplify MII structure initialization and reference. - Use the common path of SIOCGIFMEDIA in sys/net/if_ethersubr.c To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/mips/cavium/dev/if_cnmac.c 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/mips/cavium/dev/if_cnmac.c diff -u src/sys/arch/mips/cavium/dev/if_cnmac.c:1.12 src/sys/arch/mips/cavium/dev/if_cnmac.c:1.13 --- src/sys/arch/mips/cavium/dev/if_cnmac.c:1.12 Fri Apr 26 06:33:33 2019 +++ src/sys/arch/mips/cavium/dev/if_cnmac.c Wed May 29 07:46:08 2019 @@ -1,8 +1,8 @@ -/* $NetBSD: if_cnmac.c,v 1.12 2019/04/26 06:33:33 msaitoh Exp $ */ +/* $NetBSD: if_cnmac.c,v 1.13 2019/05/29 07:46:08 msaitoh Exp $ */ #include <sys/cdefs.h> #if 0 -__KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v 1.12 2019/04/26 06:33:33 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v 1.13 2019/05/29 07:46:08 msaitoh Exp $"); #endif #include "opt_octeon.h" @@ -536,33 +536,36 @@ static int octeon_eth_mediainit(struct octeon_eth_softc *sc) { struct ifnet *ifp = &sc->sc_ethercom.ec_if; + struct mii_data *mii = &sc->sc_mii; prop_object_t phy; - sc->sc_mii.mii_ifp = ifp; - sc->sc_mii.mii_readreg = octeon_eth_mii_readreg; - sc->sc_mii.mii_writereg = octeon_eth_mii_writereg; - sc->sc_mii.mii_statchg = octeon_eth_mii_statchg; - ifmedia_init(&sc->sc_mii.mii_media, 0, octeon_eth_mediachange, + mii->mii_ifp = ifp; + mii->mii_readreg = octeon_eth_mii_readreg; + mii->mii_writereg = octeon_eth_mii_writereg; + mii->mii_statchg = octeon_eth_mii_statchg; + sc->sc_ethercom.ec_mii = mii; + + /* Initialize ifmedia structures. */ + ifmedia_init(&mii->mii_media, 0, octeon_eth_mediachange, octeon_eth_mediastatus); phy = prop_dictionary_get(device_properties(sc->sc_dev), "phy-addr"); KASSERT(phy != NULL); - mii_attach(sc->sc_dev, &sc->sc_mii, - 0xffffffff, prop_number_integer_value(phy), + mii_attach(sc->sc_dev, mii, 0xffffffff, prop_number_integer_value(phy), MII_OFFSET_ANY, MIIF_DOPAUSE); /* XXX XXX XXX */ - if (LIST_FIRST(&sc->sc_mii.mii_phys) != NULL) { + if (LIST_FIRST(&mii->mii_phys) != NULL) { /* XXX XXX XXX */ - ifmedia_set(&sc->sc_mii.mii_media, IFM_ETHER | IFM_AUTO); + ifmedia_set(&mii->mii_media, IFM_ETHER | IFM_AUTO); /* XXX XXX XXX */ } else { /* XXX XXX XXX */ - ifmedia_add(&sc->sc_mii.mii_media, IFM_ETHER | IFM_NONE, + ifmedia_add(&mii->mii_media, IFM_ETHER | IFM_NONE, MII_MEDIA_NONE, NULL); /* XXX XXX XXX */ - ifmedia_set(&sc->sc_mii.mii_media, IFM_ETHER | IFM_NONE); + ifmedia_set(&mii->mii_media, IFM_ETHER | IFM_NONE); /* XXX XXX XXX */ } /* XXX XXX XXX */ @@ -827,9 +830,6 @@ octeon_eth_ioctl(struct ifnet *ifp, u_lo sc->sc_gmx_port->sc_port_flowflags = ifr->ifr_media & IFM_ETH_FMASK; } - /* FALLTHROUGH */ - case SIOCGIFMEDIA: - /* XXX: Flow contorol */ error = ifmedia_ioctl(ifp, ifr, &sc->sc_mii.mii_media, cmd); break; default: