summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2007-11-16 10:39:18 +0000
committeryongari <yongari@FreeBSD.org>2007-11-16 10:39:18 +0000
commitff740908d9b07917cd6398166007f2491b63dcdc (patch)
treec04c3320806b69115b18c95823fed157f2173807
parentf73243cb8c1b9d46b7c9f8610c2016ee76b0b267 (diff)
downloadFreeBSD-src-ff740908d9b07917cd6398166007f2491b63dcdc.zip
FreeBSD-src-ff740908d9b07917cd6398166007f2491b63dcdc.tar.gz
Reset autonegotation timer if media option is not IFM_AUTO.
Make mii_ticks advance, autonegiation is retried every mii_anegticks seconds.
-rw-r--r--sys/dev/mii/e1000phy.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/mii/e1000phy.c b/sys/dev/mii/e1000phy.c
index 91da628..ae45077 100644
--- a/sys/dev/mii/e1000phy.c
+++ b/sys/dev/mii/e1000phy.c
@@ -397,8 +397,10 @@ done:
/*
* Only used for autonegotiation.
*/
- if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO)
+ if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO) {
+ sc->mii_ticks = 0;
break;
+ }
/*
* check for link.
@@ -411,6 +413,8 @@ done:
}
/* Announce link loss right after it happens. */
+ if (sc->mii_ticks++ == 0)
+ break;
if (sc->mii_ticks <= sc->mii_anegticks)
return (0);
OpenPOWER on IntegriCloud