From 393db419ec41d010f916dca08657307123e2e36e Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 2 Aug 2010 01:28:27 +0000
Subject: [PATCH] ath9k: improve stuck beacon recovery by reading nf values
 from the hw when a calibration is pending (instead of waiting for the next
 cal interval)

SVN-Revision: 22461
---
 package/mac80211/patches/542-ath9k_bstuck_nf_calibrate.patch | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/package/mac80211/patches/542-ath9k_bstuck_nf_calibrate.patch b/package/mac80211/patches/542-ath9k_bstuck_nf_calibrate.patch
index 35db2cba37..4ac4ab210a 100644
--- a/package/mac80211/patches/542-ath9k_bstuck_nf_calibrate.patch
+++ b/package/mac80211/patches/542-ath9k_bstuck_nf_calibrate.patch
@@ -78,7 +78,7 @@
  	caldata->rawNoiseFloor = h[0].privNF;
  	return true;
  }
-@@ -374,3 +407,26 @@ s16 ath9k_hw_getchan_noise(struct ath_hw
+@@ -374,3 +407,28 @@ s16 ath9k_hw_getchan_noise(struct ath_hw
  	return ah->caldata->rawNoiseFloor;
  }
  EXPORT_SYMBOL(ath9k_hw_getchan_noise);
@@ -100,6 +100,8 @@
 +	 */
 +	if (!caldata->nfcal_pending)
 +		ath9k_hw_start_nfcal(ah, true);
++	else if (!(REG_READ(ah, AR_PHY_AGC_CONTROL) & AR_PHY_AGC_CONTROL_NF))
++		ath9k_hw_getnf(ah, ah->curchan);
 +
 +	caldata->nfcal_interference = true;
 +}
-- 
GitLab