summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/dev/mii
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-12-09 14:19:03 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-10 09:53:34 +0100
commit75b706fde4cbf82bcd41a1cec319778aa0f8eb2d (patch)
treeea39a351a1f6337b5a5dd6036314693adef5ffe6 /freebsd/sys/dev/mii
parentVMSTAT(8): Port to RTEMS (diff)
downloadrtems-libbsd-75b706fde4cbf82bcd41a1cec319778aa0f8eb2d.tar.bz2
Update to FreeBSD head 2016-12-10
Git mirror commit 80c55f08a05ab3b26a73b226ccb56adc3122a55c.
Diffstat (limited to 'freebsd/sys/dev/mii')
-rw-r--r--freebsd/sys/dev/mii/rgephy.c12
-rw-r--r--freebsd/sys/dev/mii/rgephyreg.h3
2 files changed, 13 insertions, 2 deletions
diff --git a/freebsd/sys/dev/mii/rgephy.c b/freebsd/sys/dev/mii/rgephy.c
index 067bbadf..963197a1 100644
--- a/freebsd/sys/dev/mii/rgephy.c
+++ b/freebsd/sys/dev/mii/rgephy.c
@@ -123,6 +123,8 @@ rgephy_attach(device_t dev)
flags = 0;
if (mii_dev_mac_match(dev, "re"))
flags |= MIIF_PHYPRIV0;
+ else if (mii_dev_mac_match(dev, "ure"))
+ flags |= MIIF_PHYPRIV1;
mii_phy_dev_attach(dev, flags, &rgephy_funcs, 0);
/* RTL8169S do not report auto-sense; add manually. */
@@ -295,7 +297,10 @@ rgephy_linkup(struct mii_softc *sc)
linkup++;
}
} else {
- reg = PHY_READ(sc, RL_GMEDIASTAT);
+ if (sc->mii_flags & MIIF_PHYPRIV1)
+ reg = PHY_READ(sc, URE_GMEDIASTAT);
+ else
+ reg = PHY_READ(sc, RL_GMEDIASTAT);
if (reg & RL_GMEDIASTAT_LINK)
linkup++;
}
@@ -380,7 +385,10 @@ rgephy_status(struct mii_softc *sc)
mii->mii_media_active |= IFM_HDX;
}
} else {
- bmsr = PHY_READ(sc, RL_GMEDIASTAT);
+ if (sc->mii_flags & MIIF_PHYPRIV1)
+ bmsr = PHY_READ(sc, URE_GMEDIASTAT);
+ else
+ bmsr = PHY_READ(sc, RL_GMEDIASTAT);
if (bmsr & RL_GMEDIASTAT_1000MBPS)
mii->mii_media_active |= IFM_1000_T;
else if (bmsr & RL_GMEDIASTAT_100MBPS)
diff --git a/freebsd/sys/dev/mii/rgephyreg.h b/freebsd/sys/dev/mii/rgephyreg.h
index 7c24a1f7..35917daa 100644
--- a/freebsd/sys/dev/mii/rgephyreg.h
+++ b/freebsd/sys/dev/mii/rgephyreg.h
@@ -199,4 +199,7 @@
#define EEELPAR_1000T 0x0004 /* link partner 1000baseT EEE capable */
#define EEELPAR_100TX 0x0002 /* link partner 100baseTX EEE capable */
+/* RTL8153 */
+#define URE_GMEDIASTAT 0xe908 /* media status register */
+
#endif /* _DEV_RGEPHY_MIIREG_H_ */