ath9k: fix some ANI related stability issues
authorFelix Fietkau <nbd@openwrt.org>
Tue, 8 Apr 2014 22:11:13 +0000 (22:11 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 8 Apr 2014 22:11:13 +0000 (22:11 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 40427

package/kernel/mac80211/patches/300-pending_work.patch
package/kernel/mac80211/patches/550-ath9k_entropy_from_adc.patch

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..deae67a4204c9140cd9648bfba66aadcbefb705e 100644 (file)
@@ -0,0 +1,28 @@
+commit 93f310a38a1d81a4bc8fcd9bf29628bd721cf2ef
+Author: Felix Fietkau <nbd@openwrt.org>
+Date:   Sun Apr 6 23:35:28 2014 +0200
+
+    ath9k_hw: reduce ANI firstep range for older chips
+    
+    Use 0-8 instead of 0-16, which is closer to the old implementation.
+    Also drop the overwrite of the firstep_low parameter to improve
+    stability.
+    
+    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+
+
+--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
++++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
+@@ -1004,11 +1004,9 @@ static bool ar5008_hw_ani_control_new(st
+       case ATH9K_ANI_FIRSTEP_LEVEL:{
+               u32 level = param;
+-              value = level * 2;
++              value = level;
+               REG_RMW_FIELD(ah, AR_PHY_FIND_SIG,
+                             AR_PHY_FIND_SIG_FIRSTEP, value);
+-              REG_RMW_FIELD(ah, AR_PHY_FIND_SIG_LOW,
+-                            AR_PHY_FIND_SIG_FIRSTEP_LOW, value);
+               if (level != aniState->firstepLevel) {
+                       ath_dbg(common, ANI,
index d3c17cdeb660a8e490672534ae349c7d2e832d17..54f5ced4c2da36e40c9f0e9d300b5a19b333141e 100644 (file)
                long_cal_interval = ATH_LONG_CALINTERVAL_INT;
 --- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
 +++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
-@@ -1233,9 +1233,30 @@ static void ar5008_hw_set_radar_conf(str
+@@ -1231,9 +1231,30 @@ static void ar5008_hw_set_radar_conf(str
        conf->radar_inband = 8;
  }
  
        static const u32 ar5416_cca_regs[6] = {
                AR_PHY_CCA,
                AR_PHY_CH1_CCA,
-@@ -1250,6 +1271,8 @@ int ar5008_hw_attach_phy_ops(struct ath_
+@@ -1248,6 +1269,8 @@ int ar5008_hw_attach_phy_ops(struct ath_
        if (ret)
            return ret;