svn commit: r217675 - stable/7/sys/dev/mii

Marius Strobl marius at FreeBSD.org
Fri Jan 21 00:50:35 UTC 2011


Author: marius
Date: Fri Jan 21 00:50:34 2011
New Revision: 217675
URL: http://svn.freebsd.org/changeset/base/217675

Log:
  MFC: r217414
  
  - Don't announce PAUSE support for half-duplex when MIIF_FORCEPAUSE is
    set.
  - Let mii_phy_auto() also announce PAUSE support for 10baseT-FDX.

Modified:
  stable/7/sys/dev/mii/jmphy.c
  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/jmphy.c
==============================================================================
--- stable/7/sys/dev/mii/jmphy.c	Fri Jan 21 00:50:34 2011	(r217674)
+++ stable/7/sys/dev/mii/jmphy.c	Fri Jan 21 00:50:34 2011	(r217675)
@@ -334,10 +334,10 @@ jmphy_setmedia(struct mii_softc *sc, str
 		bmcr |= BMCR_LOOP;
 
 	anar = jmphy_anar(ife);
-	if (((IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO ||
+	if ((IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO ||
 	    (ife->ifm_media & IFM_FDX) != 0) &&
-	    (ife->ifm_media & IFM_FLOW) != 0) ||
-	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0)
+	    ((ife->ifm_media & IFM_FLOW) != 0 ||
+	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0))
 		anar |= ANAR_PAUSE_TOWARDS;
 
 	if ((sc->mii_flags & MIIF_HAVE_GTCR) != 0) {

Modified: stable/7/sys/dev/mii/mii_physubr.c
==============================================================================
--- stable/7/sys/dev/mii/mii_physubr.c	Fri Jan 21 00:50:34 2011	(r217674)
+++ stable/7/sys/dev/mii/mii_physubr.c	Fri Jan 21 00:50:34 2011	(r217675)
@@ -135,8 +135,9 @@ mii_phy_setmedia(struct mii_softc *sc)
 			gtcr |= GTCR_ADV_MS;
 	}
 
-	if ((ife->ifm_media & IFM_GMASK) == (IFM_FDX | IFM_FLOW) ||
-	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0) {
+	if ((ife->ifm_media & IFM_FDX) != 0 &&
+	    ((ife->ifm_media & IFM_FLOW) != 0 ||
+	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0)) {
 		if ((sc->mii_flags & MIIF_IS_1000X) != 0)
 			anar |= ANAR_X_PAUSE_TOWARDS;
 		else {
@@ -184,7 +185,8 @@ mii_phy_auto(struct mii_softc *sc)
 		    ANAR_CSMA;
 		if ((ife->ifm_media & IFM_FLOW) != 0 ||
 		    (sc->mii_flags & MIIF_FORCEPAUSE) != 0) {
-			if ((sc->mii_capabilities & BMSR_100TXFDX) != 0)
+			if ((sc->mii_capabilities &
+			    (BMSR_10TFDX | BMSR_100TXFDX)) != 0)
 				anar |= ANAR_FC;
 			/* XXX Only 1000BASE-T has PAUSE_ASYM? */
 			if (((sc->mii_flags & MIIF_HAVE_GTCR) != 0) &&


More information about the svn-src-stable-7 mailing list