svn commit: r222160 - stable/7/sys/dev/mii
Marius Strobl
marius at FreeBSD.org
Sat May 21 16:17:40 UTC 2011
Author: marius
Date: Sat May 21 16:17:39 2011
New Revision: 222160
URL: http://svn.freebsd.org/changeset/base/222160
Log:
MFC: r221812
Some PHYs like the Level One LXT970 optionally can default to isolation
after rest, in which case we may need to deisolate them.
Tested by: nwhitehorn
Modified:
stable/7/sys/dev/mii/mii_physubr.c
Directory Properties:
stable/7/sys/ (props changed)
stable/7/sys/cddl/contrib/opensolaris/ (props changed)
stable/7/sys/contrib/dev/acpica/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
Modified: stable/7/sys/dev/mii/mii_physubr.c
==============================================================================
--- stable/7/sys/dev/mii/mii_physubr.c Sat May 21 16:17:30 2011 (r222159)
+++ stable/7/sys/dev/mii/mii_physubr.c Sat May 21 16:17:39 2011 (r222160)
@@ -260,7 +260,7 @@ void
mii_phy_reset(struct mii_softc *sc)
{
struct ifmedia_entry *ife = sc->mii_pdata->mii_media.ifm_cur;
- int reg, i;
+ int i, reg;
if ((sc->mii_flags & MIIF_NOISOLATE) != 0)
reg = BMCR_RESET;
@@ -276,11 +276,14 @@ mii_phy_reset(struct mii_softc *sc)
DELAY(1000);
}
- if ((sc->mii_flags & MIIF_NOISOLATE) == 0) {
- if ((ife == NULL && sc->mii_inst != 0) ||
- (ife != NULL && IFM_INST(ife->ifm_media) != sc->mii_inst))
- PHY_WRITE(sc, MII_BMCR, reg | BMCR_ISO);
- }
+ /* NB: a PHY may default to isolation. */
+ reg &= ~BMCR_ISO;
+ if ((sc->mii_flags & MIIF_NOISOLATE) == 0 &&
+ ((ife == NULL && sc->mii_inst != 0) ||
+ (ife != NULL && IFM_INST(ife->ifm_media) != sc->mii_inst)))
+ reg |= BMCR_ISO;
+ if (PHY_READ(sc, MII_BMCR) != reg)
+ PHY_WRITE(sc, MII_BMCR, reg);
}
void
More information about the svn-src-stable
mailing list