diff options
author | marius <marius@FreeBSD.org> | 2006-12-02 19:48:53 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2006-12-02 19:48:53 +0000 |
commit | 286f6ca8461bedd23aee491f844ee09987ee497c (patch) | |
tree | 4476f2144ce80963a9074919a6c5f744a04d0b81 /sys/dev | |
parent | e88fd11fa63919f0d0ba952544f8abe033024e9e (diff) | |
download | FreeBSD-src-286f6ca8461bedd23aee491f844ee09987ee497c.zip FreeBSD-src-286f6ca8461bedd23aee491f844ee09987ee497c.tar.gz |
- Don't set MIIF_NOISOLATE so rgephy(4) can be used in configurations
with multiple PHYs and un-comment case IFM_NONE in case MII_MEDIACHG
rgephy_service(). There doesn't seem to be a problem with isolating
RTL8169S and their internal PHY.
- Take advantage of mii_phy_add_media(). [1]
Obtained from: NetBSD [1]
Tested by: yongari
MFC after: 2 weeks
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/mii/rgephy.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/sys/dev/mii/rgephy.c b/sys/dev/mii/rgephy.c index 58c11ab..ba07489 100644 --- a/sys/dev/mii/rgephy.c +++ b/sys/dev/mii/rgephy.c @@ -119,14 +119,11 @@ rgephy_attach(device_t dev) sc->mii_service = rgephy_service; sc->mii_pdata = mii; - sc->mii_flags |= MIIF_NOISOLATE; mii->mii_instance++; #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) #define PRINT(s) printf("%s%s", sep, s); sep = ", " - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst), - BMCR_ISO); #if 0 ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), BMCR_LOOP|BMCR_S100); @@ -136,15 +133,10 @@ rgephy_attach(device_t dev) sc->mii_capabilities &= ~BMSR_ANEG; device_printf(dev, " "); - mii_add_media(sc); - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, 0, sc->mii_inst), - RGEPHY_BMCR_FDX); - PRINT(", 1000baseTX"); - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, IFM_FDX, sc->mii_inst), 0); - PRINT("1000baseTX-FDX"); - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_AUTO, 0, sc->mii_inst), 0); + mii_phy_add_media(sc); + /* RTL8169S do not report auto-sense; add manually. */ + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_AUTO, 0, sc->mii_inst), MII_NMEDIA); PRINT("auto"); - printf("\n"); #undef ADD #undef PRINT @@ -251,11 +243,9 @@ setit: PHY_WRITE(sc, RGEPHY_MII_BMCR, speed | RGEPHY_BMCR_AUTOEN | RGEPHY_BMCR_STARTNEG); break; -#ifdef foo case IFM_NONE: PHY_WRITE(sc, MII_BMCR, BMCR_ISO|BMCR_PDOWN); break; -#endif case IFM_100_T4: default: return (EINVAL); |