summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2011-11-22 21:22:06 +0000
committeryongari <yongari@FreeBSD.org>2011-11-22 21:22:06 +0000
commit6479d45e1526c99672febf3a29a6a99305871131 (patch)
tree9a0356cdb58d0f361410a61e5c9567059472fba0
parenta9fce2442e7b7d3ec1b855a6d931142e5371fc98 (diff)
downloadFreeBSD-src-6479d45e1526c99672febf3a29a6a99305871131.zip
FreeBSD-src-6479d45e1526c99672febf3a29a6a99305871131.tar.gz
For IP1001 PHY, do not set multi-port device(MASTER). Ideally this
bit should not affect link establishment process of auto-negotiation if manual configuration is not used, which is true in auto-negotiation. However it seems setting this bit interfere with IP1001 PHY's down-shifting feature such that establishing a 10/100Mbps link failed when 1000baseT link is not available during auto-negotiation process. Tested by: Andrey Smagin <samspeed <> mail dot ru >
-rw-r--r--sys/dev/mii/ip1000phy.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/mii/ip1000phy.c b/sys/dev/mii/ip1000phy.c
index 566b5b0..9634f84 100644
--- a/sys/dev/mii/ip1000phy.c
+++ b/sys/dev/mii/ip1000phy.c
@@ -324,7 +324,8 @@ ip1000phy_mii_phy_auto(struct mii_softc *sc, int media)
PHY_WRITE(sc, IP1000PHY_MII_ANAR, reg | IP1000PHY_ANAR_CSMA);
reg = IP1000PHY_1000CR_1000T | IP1000PHY_1000CR_1000T_FDX;
- reg |= IP1000PHY_1000CR_MASTER;
+ if (sc->mii_mpd_model != MII_MODEL_xxICPLUS_IP1001)
+ reg |= IP1000PHY_1000CR_MASTER;
PHY_WRITE(sc, IP1000PHY_MII_1000CR, reg);
PHY_WRITE(sc, IP1000PHY_MII_BMCR, (IP1000PHY_BMCR_FDX |
IP1000PHY_BMCR_AUTOEN | IP1000PHY_BMCR_STARTNEG));
OpenPOWER on IntegriCloud