Date: Thu, 23 Feb 2012 06:35:18 +0000 (UTC) From: Pyun YongHyeon <yongari@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r232031 - head/sys/dev/sf Message-ID: <201202230635.q1N6ZID4087916@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202230635.q1N6ZID4087916>