ath9k_hw: remove iniModes_*_tx_gain_9271
authorFelix Fietkau <nbd@openwrt.org>
Wed, 14 Mar 2012 15:40:32 +0000 (16:40 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 15 Mar 2012 17:45:08 +0000 (13:45 -0400)
Program tx gain through iniModesTxGain like on AR9287

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar5008_phy.c
drivers/net/wireless/ath/ath9k/ar9002_hw.c
drivers/net/wireless/ath/ath9k/hw.h

index 5d34e57ce50b262c5c672ba5c0329b2d6c007a46..3e108c8b1d32615950ddc6a265c1771f00e0ba3f 100644 (file)
@@ -858,15 +858,6 @@ static int ar5008_hw_process_ini(struct ath_hw *ah,
 
        REGWRITE_BUFFER_FLUSH(ah);
 
-       if (AR_SREV_9271(ah)) {
-               if (ah->eep_ops->get_eeprom(ah, EEP_TXGAIN_TYPE) == 1)
-                       REG_WRITE_ARRAY(&ah->iniModes_high_power_tx_gain_9271,
-                                       modesIndex, regWrites);
-               else
-                       REG_WRITE_ARRAY(&ah->iniModes_normal_power_tx_gain_9271,
-                                       modesIndex, regWrites);
-       }
-
        REG_WRITE_ARRAY(&ah->iniBB_RfGain, freqIndex, regWrites);
 
        if (IS_CHAN_A_FAST_CLOCK(ah, chan))
index 7098cd8eee6023ea3e242e1b56373ecfb0b1e27b..99d2dd979d1c7556ce108d29d3e7fb6b2e4ea133 100644 (file)
@@ -39,12 +39,6 @@ static void ar9002_hw_init_mode_regs(struct ath_hw *ah)
                               ARRAY_SIZE(ar9271Modes_9271_1_0_only), 5);
                INIT_INI_ARRAY(&ah->iniModes_9271_ANI_reg, ar9271Modes_9271_ANI_reg,
                               ARRAY_SIZE(ar9271Modes_9271_ANI_reg), 5);
-               INIT_INI_ARRAY(&ah->iniModes_high_power_tx_gain_9271,
-                              ar9271Modes_high_power_tx_gain_9271,
-                              ARRAY_SIZE(ar9271Modes_high_power_tx_gain_9271), 5);
-               INIT_INI_ARRAY(&ah->iniModes_normal_power_tx_gain_9271,
-                              ar9271Modes_normal_power_tx_gain_9271,
-                              ARRAY_SIZE(ar9271Modes_normal_power_tx_gain_9271), 5);
                return;
        }
 
@@ -193,14 +187,10 @@ static void ar9280_20_hw_init_rxgain_ini(struct ath_hw *ah)
        }
 }
 
-static void ar9280_20_hw_init_txgain_ini(struct ath_hw *ah)
+static void ar9280_20_hw_init_txgain_ini(struct ath_hw *ah, u32 txgain_type)
 {
-       u32 txgain_type;
-
        if (ah->eep_ops->get_eeprom(ah, EEP_MINOR_REV) >=
            AR5416_EEP_MINOR_VER_19) {
-               txgain_type = ah->eep_ops->get_eeprom(ah, EEP_TXGAIN_TYPE);
-
                if (txgain_type == AR5416_EEP_TXGAIN_HIGH_POWER)
                        INIT_INI_ARRAY(&ah->iniModesTxGain,
                        ar9280Modes_high_power_tx_gain_9280_2,
@@ -216,8 +206,22 @@ static void ar9280_20_hw_init_txgain_ini(struct ath_hw *ah)
        }
 }
 
+static void ar9271_hw_init_txgain_ini(struct ath_hw *ah, u32 txgain_type)
+{
+       if (txgain_type == AR5416_EEP_TXGAIN_HIGH_POWER)
+               INIT_INI_ARRAY(&ah->iniModesTxGain,
+                              ar9271Modes_high_power_tx_gain_9271,
+                              ARRAY_SIZE(ar9271Modes_high_power_tx_gain_9271), 5);
+       else
+               INIT_INI_ARRAY(&ah->iniModesTxGain,
+                              ar9271Modes_normal_power_tx_gain_9271,
+                              ARRAY_SIZE(ar9271Modes_normal_power_tx_gain_9271), 5);
+}
+
 static void ar9002_hw_init_mode_gain_regs(struct ath_hw *ah)
 {
+       u32 txgain_type = ah->eep_ops->get_eeprom(ah, EEP_TXGAIN_TYPE);
+
        if (AR_SREV_9287_11_OR_LATER(ah))
                INIT_INI_ARRAY(&ah->iniModesRxGain,
                ar9287Modes_rx_gain_9287_1_1,
@@ -225,15 +229,15 @@ static void ar9002_hw_init_mode_gain_regs(struct ath_hw *ah)
        else if (AR_SREV_9280_20(ah))
                ar9280_20_hw_init_rxgain_ini(ah);
 
-       if (AR_SREV_9287_11_OR_LATER(ah)) {
+       if (AR_SREV_9271(ah)) {
+               ar9271_hw_init_txgain_ini(ah, txgain_type);
+       } else if (AR_SREV_9287_11_OR_LATER(ah)) {
                INIT_INI_ARRAY(&ah->iniModesTxGain,
                ar9287Modes_tx_gain_9287_1_1,
                ARRAY_SIZE(ar9287Modes_tx_gain_9287_1_1), 5);
        } else if (AR_SREV_9280_20(ah)) {
-               ar9280_20_hw_init_txgain_ini(ah);
+               ar9280_20_hw_init_txgain_ini(ah, txgain_type);
        } else if (AR_SREV_9285_12_OR_LATER(ah)) {
-               u32 txgain_type = ah->eep_ops->get_eeprom(ah, EEP_TXGAIN_TYPE);
-
                /* txgain table */
                if (txgain_type == AR5416_EEP_TXGAIN_HIGH_POWER) {
                        if (AR_SREV_9285E_20(ah)) {
index 7822d5ecbf8b81428daa4417399a27a31c15bfc5..ca673a8757d680eac3c0cdcd57de4d4c85ffc4d6 100644 (file)
@@ -836,8 +836,6 @@ struct ath_hw {
        struct ar5416IniArray iniCckfirJapan2484;
        struct ar5416IniArray ini_japan2484;
        struct ar5416IniArray iniModes_9271_ANI_reg;
-       struct ar5416IniArray iniModes_high_power_tx_gain_9271;
-       struct ar5416IniArray iniModes_normal_power_tx_gain_9271;
        struct ar5416IniArray ini_radio_post_sys2ant;
        struct ar5416IniArray ini_BTCOEX_MAX_TXPWR;