svn commit: r227378 - head/sys/dev/ath/ath_hal/ar5416

Adrian Chadd adrian at FreeBSD.org
Wed Nov 9 05:41:41 UTC 2011


Author: adrian
Date: Wed Nov  9 05:41:40 2011
New Revision: 227378
URL: http://svn.freebsd.org/changeset/base/227378

Log:
  Add logic to ANI to tweak the firstep parameter when in hostap mode.
  This is normally done based on the beacon RSSI but this isn't available
  in hostap mode.
  
  Obtained from:	Atheros
  Sponsored by:	Hobnob, Inc.

Modified:
  head/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c

Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c	Wed Nov  9 05:39:17 2011	(r227377)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c	Wed Nov  9 05:41:40 2011	(r227378)
@@ -396,6 +396,18 @@ ar5416AniOfdmErrTrigger(struct ath_hal *
 			return;
 	}
 
+	/*
+	 * In the case of AP mode operation, we cannot bucketize beacons
+	 * according to RSSI.  Instead, raise Firstep level, up to max, and
+	 * simply return.
+	 */
+	if (AH_PRIVATE(ah)->ah_opmode == HAL_M_HOSTAP) {
+		if (aniState->firstepLevel < params->maxFirstepLevel) {
+			if (ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL,
+			    aniState->firstepLevel + 1))
+				return;
+		}
+	}
 	if (ANI_ENA_RSSI(ah)) {
 		int32_t rssi = BEACON_RSSI(ahp);
 		if (rssi > params->rssiThrHigh) {
@@ -713,6 +725,19 @@ ar5416AniLowerImmunity(struct ath_hal *a
 
 	aniState = ahp->ah_curani;
 	params = aniState->params;
+
+	/*
+	 * In the case of AP mode operation, we cannot bucketize beacons
+	 * according to RSSI.  Instead, lower Firstep level, down to min, and
+	 * simply return.
+	 */
+	if (AH_PRIVATE(ah)->ah_opmode == HAL_M_HOSTAP) {
+		if (aniState->firstepLevel > 0) {
+			if (ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL,
+			    aniState->firstepLevel - 1))
+				return;
+		}
+	}
 	if (ANI_ENA_RSSI(ah)) {
 		int32_t rssi = BEACON_RSSI(ahp);
 		if (rssi > params->rssiThrHigh) {


More information about the svn-src-head mailing list