svn commit: r187608 - head/sys/dev/ath

Sam Leffler sam at FreeBSD.org
Thu Jan 22 19:15:29 PST 2009


Author: sam
Date: Fri Jan 23 03:15:28 2009
New Revision: 187608
URL: http://svn.freebsd.org/changeset/base/187608

Log:
  don't run the calibration code if scanning, we won't be on the home channel

Modified:
  head/sys/dev/ath/if_ath.c

Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c	Fri Jan 23 00:58:14 2009	(r187607)
+++ head/sys/dev/ath/if_ath.c	Fri Jan 23 03:15:28 2009	(r187608)
@@ -5793,9 +5793,12 @@ ath_calibrate(void *arg)
 	struct ath_softc *sc = arg;
 	struct ath_hal *ah = sc->sc_ah;
 	struct ifnet *ifp = sc->sc_ifp;
+	struct ieee80211com *ic = ifp->if_l2com;
 	HAL_BOOL longCal, isCalDone;
 	int nextcal;
 
+	if (ic->ic_flags & IEEE80211_F_SCAN)	/* defer, off channel */
+		goto restart;
 	longCal = (ticks - sc->sc_lastlongcal >= ath_longcalinterval*hz);
 	if (longCal) {
 		sc->sc_stats.ast_per_cal++;
@@ -5833,6 +5836,7 @@ ath_calibrate(void *arg)
 		sc->sc_stats.ast_per_calfail++;
 	}
 	if (!isCalDone) {
+restart:
 		/*
 		 * Use a shorter interval to potentially collect multiple
 		 * data samples required to complete calibration.  Once


More information about the svn-src-all mailing list