Explorar o código

ath9k: trigger nfcal only after multiple missed beacons in AP mode

Single missed (i.e. not transmitted) beacons in AP mode are not very rare
and not necessarily an indicator of strong interference, so only trigger
noise floor recalibration when multiple consecutive beacons could not
be transmitted.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Felix Fietkau %!s(int64=14) %!d(string=hai) anos
pai
achega
87c510fe2d
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      drivers/net/wireless/ath/ath9k/beacon.c

+ 2 - 1
drivers/net/wireless/ath/ath9k/beacon.c

@@ -368,7 +368,8 @@ void ath_beacon_tasklet(unsigned long data)
 				"missed %u consecutive beacons\n",
 				"missed %u consecutive beacons\n",
 				sc->beacon.bmisscnt);
 				sc->beacon.bmisscnt);
 			ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq);
 			ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq);
-			ath9k_hw_bstuck_nfcal(ah);
+			if (sc->beacon.bmisscnt > 3)
+				ath9k_hw_bstuck_nfcal(ah);
 		} else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) {
 		} else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) {
 			ath_dbg(common, ATH_DBG_BSTUCK,
 			ath_dbg(common, ATH_DBG_BSTUCK,
 				"beacon is officially stuck\n");
 				"beacon is officially stuck\n");