diff options
author | yongari <yongari@FreeBSD.org> | 2011-11-22 21:22:06 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2011-11-22 21:22:06 +0000 |
commit | 6479d45e1526c99672febf3a29a6a99305871131 (patch) | |
tree | 9a0356cdb58d0f361410a61e5c9567059472fba0 /sys/dev/mii | |
parent | a9fce2442e7b7d3ec1b855a6d931142e5371fc98 (diff) | |
download | FreeBSD-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 >
Diffstat (limited to 'sys/dev/mii')
-rw-r--r-- | sys/dev/mii/ip1000phy.c | 3 |
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)); |