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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to