diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/mii/miidevs | 1 | ||||
-rw-r--r-- | sys/dev/mii/rgephy.c | 7 |
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/mii/miidevs b/sys/dev/mii/miidevs index d2931f3..60a883a 100644 --- a/sys/dev/mii/miidevs +++ b/sys/dev/mii/miidevs @@ -304,6 +304,7 @@ model yyREALTEK RTL8201L 0x0020 RTL8201L 10/100 media interface model xxREALTEK RTL8169S 0x0011 RTL8169S/8110S/8211 1000BASE-T media interface model REALTEK RTL8305SC 0x0005 RTL8305SC 10/100 802.1q switch model REALTEK RTL8201E 0x0008 RTL8201E 10/100 media interface +model REALTEK RTL8251 0x0000 RTL8251 1000BASE-T media interface model REALTEK RTL8169S 0x0011 RTL8169S/8110S/8211 1000BASE-T media interface /* Seeq Seeq PHYs */ diff --git a/sys/dev/mii/rgephy.c b/sys/dev/mii/rgephy.c index aa919f5..8345f1f 100644 --- a/sys/dev/mii/rgephy.c +++ b/sys/dev/mii/rgephy.c @@ -90,6 +90,7 @@ static void rgephy_load_dspcode(struct mii_softc *); static const struct mii_phydesc rgephys[] = { MII_PHY_DESC(REALTEK, RTL8169S), + MII_PHY_DESC(REALTEK, RTL8251), MII_PHY_END }; @@ -406,7 +407,8 @@ rgephy_loop(struct mii_softc *sc) { int i; - if (sc->mii_mpd_rev < 2) { + if (sc->mii_mpd_model != MII_MODEL_REALTEK_RTL8251 && + sc->mii_mpd_rev < 2) { PHY_WRITE(sc, RGEPHY_MII_BMCR, RGEPHY_BMCR_PDOWN); DELAY(1000); } @@ -439,7 +441,8 @@ rgephy_load_dspcode(struct mii_softc *sc) { int val; - if (sc->mii_mpd_rev >= 2) + if (sc->mii_mpd_model == MII_MODEL_REALTEK_RTL8251 || + sc->mii_mpd_rev >= 2) return; PHY_WRITE(sc, 31, 0x0001); |