ath9k_hw: fix tx gain table index for AR953x
authorRajkumar Manoharan <rmanohar@qti.qualcomm.com>
Tue, 24 Jun 2014 16:57:39 +0000 (22:27 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 25 Jun 2014 19:40:38 +0000 (15:40 -0400)
Fix tx gain table index on fast channel change for AR953x.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_phy.c

index 8927fc34d84c2f009e192dc9a37cb140be941e54..542a8d51d3b033bd21521a6b34972107eb44ff04 100644 (file)
@@ -1552,13 +1552,15 @@ static int ar9003_hw_fast_chan_change(struct ath_hw *ah,
                                      u8 *ini_reloaded)
 {
        unsigned int regWrites = 0;
-       u32 modesIndex;
+       u32 modesIndex, txgain_index;
 
        if (IS_CHAN_5GHZ(chan))
                modesIndex = IS_CHAN_HT40(chan) ? 2 : 1;
        else
                modesIndex = IS_CHAN_HT40(chan) ? 3 : 4;
 
+       txgain_index = AR_SREV_9531(ah) ? 1 : modesIndex;
+
        if (modesIndex == ah->modes_index) {
                *ini_reloaded = false;
                goto set_rfmode;
@@ -1573,7 +1575,7 @@ static int ar9003_hw_fast_chan_change(struct ath_hw *ah,
                ar9003_hw_prog_ini(ah, &ah->ini_radio_post_sys2ant,
                                   modesIndex);
 
-       REG_WRITE_ARRAY(&ah->iniModesTxGain, modesIndex, regWrites);
+       REG_WRITE_ARRAY(&ah->iniModesTxGain, txgain_index, regWrites);
 
        if (AR_SREV_9462_20_OR_LATER(ah)) {
                /*