summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii/e1000phy.c
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2009-08-18 20:20:15 +0000
committeryongari <yongari@FreeBSD.org>2009-08-18 20:20:15 +0000
commit55fac3f9e0bfbff28af262ca9c4e0a4db8e160de (patch)
treefab1b1df5123d310cc7106a6878037f8bb2161c3 /sys/dev/mii/e1000phy.c
parent675baffde5f5f7a38d794ef1c4506f39a244a19e (diff)
downloadFreeBSD-src-55fac3f9e0bfbff28af262ca9c4e0a4db8e160de.zip
FreeBSD-src-55fac3f9e0bfbff28af262ca9c4e0a4db8e160de.tar.gz
Backout r193289. r193289 restored page select bits to previous
value instead of blindly resetting it to 0. However, it seems page select bits of some 88E1116 PHY is initialized to invalid one such that restoring page select bits after programming broke MII register access. The correct solution would be reset page select bits to 0 in PHY attach stage but it would require more testing. Since we're in BETA stage such a change would be dangerous so just back it out. This change should fix nfe(4) breakage on NVIDIA MCP55. Reported by: Ryan Rogers < webmaster <> doghouserepair dot com > Sam Fourman Jr. < sfourman <> gmail dot com > Tested by: Ryan Rogers < webmaster <> doghouserepair dot com > Sam Fourman Jr. < sfourman <> gmail dot com > Approved by: re (kib)
Diffstat (limited to 'sys/dev/mii/e1000phy.c')
-rw-r--r--sys/dev/mii/e1000phy.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/dev/mii/e1000phy.c b/sys/dev/mii/e1000phy.c
index f0d159b..4f2fa66 100644
--- a/sys/dev/mii/e1000phy.c
+++ b/sys/dev/mii/e1000phy.c
@@ -240,13 +240,11 @@ e1000phy_reset(struct mii_softc *sc)
if (esc->mii_model == MII_MODEL_MARVELL_E1116 ||
esc->mii_model == MII_MODEL_MARVELL_E1149) {
- page = PHY_READ(sc, E1000_EADR);
- /* Select page 2, MAC specific control register. */
PHY_WRITE(sc, E1000_EADR, 2);
reg = PHY_READ(sc, E1000_SCR);
reg |= E1000_SCR_RGMII_POWER_UP;
PHY_WRITE(sc, E1000_SCR, reg);
- PHY_WRITE(sc, E1000_EADR, page);
+ PHY_WRITE(sc, E1000_EADR, 0);
}
}
OpenPOWER on IntegriCloud