Author: yongari
Date: Thu Feb 23 06:35:18 2012
New Revision: 232031
URL: http://svn.freebsd.org/changeset/base/232031

Log:
  With r232015, sf(4) gets correct speed/duplex of established link.
  Add more strict speed check in sf_miibus_statchg() and do not touch
  MAC config registers when driver lost a link.

Modified:
  head/sys/dev/sf/if_sf.c

Modified: head/sys/dev/sf/if_sf.c
==============================================================================
--- head/sys/dev/sf/if_sf.c     Thu Feb 23 06:26:16 2012        (r232030)
+++ head/sys/dev/sf/if_sf.c     Thu Feb 23 06:35:18 2012        (r232031)
@@ -403,11 +403,19 @@ sf_miibus_statchg(device_t dev)
            (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
                return;
 
-       if (mii->mii_media_status & IFM_ACTIVE) {
-               if (IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE)
+       sc->sf_link = 0;
+       if ((mii->mii_media_status & (IFM_ACTIVE | IFM_AVALID)) ==
+           (IFM_ACTIVE | IFM_AVALID)) {
+               switch (IFM_SUBTYPE(mii->mii_media_active)) {
+               case IFM_10_T:
+               case IFM_100_TX:
+               case IFM_100_FX:
                        sc->sf_link = 1;
-       } else
-               sc->sf_link = 0;
+                       break;
+               }
+       }
+       if (sc->sf_link == 0)
+               return;
 
        val = csr_read_4(sc, SF_MACCFG_1);
        val &= ~SF_MACCFG1_FULLDUPLEX;
_______________________________________________
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