summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2006-12-02 19:48:53 +0000
committermarius <marius@FreeBSD.org>2006-12-02 19:48:53 +0000
commit286f6ca8461bedd23aee491f844ee09987ee497c (patch)
tree4476f2144ce80963a9074919a6c5f744a04d0b81 /sys/dev/mii
parente88fd11fa63919f0d0ba952544f8abe033024e9e (diff)
downloadFreeBSD-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/mii')
-rw-r--r--sys/dev/mii/rgephy.c16
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);
OpenPOWER on IntegriCloud