]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/net/wireless/ath/ath9k/ar9003_phy.c
ath9k_hw: fix tx gain table index for AR953x
[mirror_ubuntu-artful-kernel.git] / 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)) {
                /*