mac80211: update to wireless-testing 2013-11-05
[openwrt.git] / package / kernel / mac80211 / patches / 522-ath9k_per_chain_signal_strength.patch
index 5a6c503..94e0154 100644 (file)
@@ -17,7 +17,7 @@
        u8 rs_moreaggr;
 --- a/drivers/net/wireless/ath/ath9k/recv.c
 +++ b/drivers/net/wireless/ath/ath9k/recv.c
-@@ -892,6 +892,7 @@ static void ath9k_process_rssi(struct at
+@@ -906,6 +906,7 @@ static void ath9k_process_rssi(struct at
        struct ath_hw *ah = common->ah;
        int last_rssi;
        int rssi = rx_stats->rs_rssi;
@@ -25,7 +25,7 @@
  
        /*
         * RSSI is not available for subframes in an A-MPDU.
-@@ -910,6 +911,20 @@ static void ath9k_process_rssi(struct at
+@@ -924,6 +925,20 @@ static void ath9k_process_rssi(struct at
                return;
        }
  
        /*
         * Update Beacon RSSI, this is used by ANI.
         */
-@@ -1000,7 +1015,7 @@ static int ath_process_fft(struct ath_so
-       fft_sample.tlv.length = __cpu_to_be16(length);
+@@ -1073,14 +1088,14 @@ static int ath_process_fft(struct ath_so
+               fft_sample_40.channel_type = chan_type;
  
-       fft_sample.freq = __cpu_to_be16(ah->curchan->chan->center_freq);
--      fft_sample.rssi = fix_rssi_inv_only(rs->rs_rssi_ctl0);
-+      fft_sample.rssi = fix_rssi_inv_only(rs->rs_rssi_ctl[0]);
-       fft_sample.noise = ah->noise;
+               if (chan_type == NL80211_CHAN_HT40PLUS) {
+-                      lower_rssi = fix_rssi_inv_only(rs->rs_rssi_ctl0);
+-                      upper_rssi = fix_rssi_inv_only(rs->rs_rssi_ext0);
++                      lower_rssi = fix_rssi_inv_only(rs->rs_rssi_ctl[0]);
++                      upper_rssi = fix_rssi_inv_only(rs->rs_rssi_ext[0]);
  
-       switch (len - SPECTRAL_HT20_TOTAL_DATA_LEN) {
+                       fft_sample_40.lower_noise = ah->noise;
+                       fft_sample_40.upper_noise = ext_nf;
+               } else {
+-                      lower_rssi = fix_rssi_inv_only(rs->rs_rssi_ext0);
+-                      upper_rssi = fix_rssi_inv_only(rs->rs_rssi_ctl0);
++                      lower_rssi = fix_rssi_inv_only(rs->rs_rssi_ext[0]);
++                      upper_rssi = fix_rssi_inv_only(rs->rs_rssi_ctl[0]);
+                       fft_sample_40.lower_noise = ext_nf;
+                       fft_sample_40.upper_noise = ah->noise;
+@@ -1116,7 +1131,7 @@ static int ath_process_fft(struct ath_so
+               fft_sample_20.tlv.length = __cpu_to_be16(length);
+               fft_sample_20.freq = __cpu_to_be16(freq);
+-              fft_sample_20.rssi = fix_rssi_inv_only(rs->rs_rssi_ctl0);
++              fft_sample_20.rssi = fix_rssi_inv_only(rs->rs_rssi_ctl[0]);
+               fft_sample_20.noise = ah->noise;
+               mag_info = ((struct ath_ht20_mag_info *)radar_info) - 1;
 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
 +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
 @@ -476,12 +476,12 @@ int ath9k_hw_process_rxdesc_edma(struct 
         * hardware stores this as 8 bit signed value.
 --- a/drivers/net/wireless/ath/ath9k/antenna.c
 +++ b/drivers/net/wireless/ath/ath9k/antenna.c
-@@ -744,14 +744,14 @@ void ath_ant_comb_scan(struct ath_softc 
+@@ -724,14 +724,14 @@ void ath_ant_comb_scan(struct ath_softc 
        struct ath_ant_comb *antcomb = &sc->ant_comb;
        int alt_ratio = 0, alt_rssi_avg = 0, main_rssi_avg = 0, curr_alt_set;
        int curr_main_set;