Changeset 26820


Ignore:
Timestamp:
2011-05-04T16:36:15+02:00 (7 years ago)
Author:
nbd
Message:

ath9k: add noise floor calibration fix that should improve stability, backport of r26819

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/package/mac80211/patches/300-pending_work.patch

    r26763 r26820  
    566566        } else { 
    567567                del_timer(&tid_agg_rx->reorder_timer); 
     568--- a/drivers/net/wireless/ath/ath9k/calib.c 
     569+++ b/drivers/net/wireless/ath/ath9k/calib.c 
     570@@ -69,15 +69,21 @@ static void ath9k_hw_update_nfcal_hist_b 
     571                                              int16_t *nfarray) 
     572 { 
     573        struct ath_common *common = ath9k_hw_common(ah); 
     574+       struct ieee80211_conf *conf = &common->hw->conf; 
     575        struct ath_nf_limits *limit; 
     576        struct ath9k_nfcal_hist *h; 
     577        bool high_nf_mid = false; 
     578+       u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask; 
     579        int i; 
     580  
     581        h = cal->nfCalHist; 
     582        limit = ath9k_hw_get_nf_limits(ah, ah->curchan); 
     583  
     584        for (i = 0; i < NUM_NF_READINGS; i++) { 
     585+               if (!(chainmask & (1 << i)) || 
     586+                   ((i >= AR5416_MAX_CHAINS) && !conf_is_ht40(conf))) 
     587+                       continue; 
     588+ 
     589                h[i].nfCalBuffer[h[i].currIndex] = nfarray[i]; 
     590  
     591                if (++h[i].currIndex >= ATH9K_NF_CAL_HIST_MAX) 
     592@@ -225,6 +231,7 @@ void ath9k_hw_loadnf(struct ath_hw *ah,  
     593        int32_t val; 
     594        u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask; 
     595        struct ath_common *common = ath9k_hw_common(ah); 
     596+       struct ieee80211_conf *conf = &common->hw->conf; 
     597        s16 default_nf = ath9k_hw_get_default_nf(ah, chan); 
     598  
     599        if (ah->caldata) 
     600@@ -234,6 +241,9 @@ void ath9k_hw_loadnf(struct ath_hw *ah,  
     601                if (chainmask & (1 << i)) { 
     602                        s16 nfval; 
     603  
     604+                       if ((i >= AR5416_MAX_CHAINS) && !conf_is_ht40(conf)) 
     605+                               continue; 
     606+ 
     607                        if (h) 
     608                                nfval = h[i].privNF; 
     609                        else 
     610@@ -293,6 +303,9 @@ void ath9k_hw_loadnf(struct ath_hw *ah,  
     611        ENABLE_REGWRITE_BUFFER(ah); 
     612        for (i = 0; i < NUM_NF_READINGS; i++) { 
     613                if (chainmask & (1 << i)) { 
     614+                       if ((i >= AR5416_MAX_CHAINS) && !conf_is_ht40(conf)) 
     615+                               continue; 
     616+ 
     617                        val = REG_READ(ah, ah->nf_regs[i]); 
     618                        val &= 0xFFFFFE00; 
     619                        val |= (((u32) (-50) << 1) & 0x1ff); 
Note: See TracChangeset for help on using the changeset viewer.