svn commit: r215716 - head/sys/dev/mii

Marius Strobl marius at FreeBSD.org
Mon Nov 22 21:24:30 UTC 2010


Author: marius
Date: Mon Nov 22 21:24:29 2010
New Revision: 215716
URL: http://svn.freebsd.org/changeset/base/215716

Log:
  Add support for flow control.
  
  Obtained from:	NetBSD (partially)

Modified:
  head/sys/dev/mii/bmtphy.c
  head/sys/dev/mii/inphy.c
  head/sys/dev/mii/nsphyter.c

Modified: head/sys/dev/mii/bmtphy.c
==============================================================================
--- head/sys/dev/mii/bmtphy.c	Mon Nov 22 21:22:08 2010	(r215715)
+++ head/sys/dev/mii/bmtphy.c	Mon Nov 22 21:24:29 2010	(r215716)
@@ -153,6 +153,8 @@ bmtphy_attach(device_t dev)
 	sc->mii_service = bmtphy_service;
 	sc->mii_pdata = mii;
 
+	sc->mii_flags |= MIIF_NOMANPAUSE;
+
 	mii_phy_reset(sc);
 
 	sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
@@ -243,7 +245,8 @@ bmtphy_status(struct mii_softc *sc)
 		else
 			mii->mii_media_active |= IFM_10_T;
 		if (aux_csr & AUX_CSR_FDX)
-			mii->mii_media_active |= IFM_FDX;
+			mii->mii_media_active |=
+			    IFM_FDX | mii_phy_flowstatus(sc);
 		else
 			mii->mii_media_active |= IFM_HDX;
 	} else

Modified: head/sys/dev/mii/inphy.c
==============================================================================
--- head/sys/dev/mii/inphy.c	Mon Nov 22 21:22:08 2010	(r215715)
+++ head/sys/dev/mii/inphy.c	Mon Nov 22 21:24:29 2010	(r215716)
@@ -113,6 +113,8 @@ inphy_attach(device_t dev)
 	sc->mii_service = inphy_service;
 	sc->mii_pdata = mii;
 
+	sc->mii_flags |= MIIF_NOMANPAUSE;
+
 	ifmedia_add(&mii->mii_media,
 	    IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst),
 	    MII_MEDIA_100_TX, NULL);
@@ -197,7 +199,8 @@ inphy_status(struct mii_softc *sc)
 		else
 			mii->mii_media_active |= IFM_10_T;
 		if (scr & SCR_FDX)
-			mii->mii_media_active |= IFM_FDX;
+			mii->mii_media_active |=
+			    IFM_FDX | mii_phy_flowstatus(sc);
 		else
 			mii->mii_media_active |= IFM_HDX;
 	} else

Modified: head/sys/dev/mii/nsphyter.c
==============================================================================
--- head/sys/dev/mii/nsphyter.c	Mon Nov 22 21:22:08 2010	(r215715)
+++ head/sys/dev/mii/nsphyter.c	Mon Nov 22 21:24:29 2010	(r215716)
@@ -143,6 +143,8 @@ nsphyter_attach(device_t dev)
 	sc->mii_service = nsphyter_service;
 	sc->mii_pdata = mii;
 
+	sc->mii_flags |= MIIF_NOMANPAUSE;
+
 #if 1
 
 #define	ADD(m, c)	ifmedia_add(&mii->mii_media, (m), (c), NULL)
@@ -242,12 +244,8 @@ nsphyter_status(struct mii_softc *sc)
 		else
 			mii->mii_media_active |= IFM_100_TX;
 		if ((physts & PHYSTS_DUPLEX) != 0)
-#ifdef notyet
 			mii->mii_media_active |=
 			    IFM_FDX | mii_phy_flowstatus(sc);
-#else
-			mii->mii_media_active |= IFM_FDX;
-#endif
 		else
 			mii->mii_media_active |= IFM_HDX;
 	} else


More information about the svn-src-all mailing list