ath9k: add power per-rate tables for AR9002 chips
[cascardo/linux.git] / drivers / net / wireless / ath / ath9k / eeprom_def.c
index 122b846..0980590 100644 (file)
@@ -1332,6 +1332,20 @@ static void ath9k_hw_def_set_txpower(struct ath_hw *ah,
                  ATH9K_POW_SM(pModal->pwrDecreaseFor3Chain, 6)
                  | ATH9K_POW_SM(pModal->pwrDecreaseFor2Chain, 0));
 
+       /* TPC initializations */
+       if (ah->tpc_enabled) {
+               int ht40_delta;
+
+               ht40_delta = (IS_CHAN_HT40(chan)) ? ht40PowerIncForPdadc : 0;
+               ar5008_hw_init_rate_txpower(ah, ratesArray, chan, ht40_delta);
+               /* Enable TPC */
+               REG_WRITE(ah, AR_PHY_POWER_TX_RATE_MAX,
+                       MAX_RATE_POWER | AR_PHY_POWER_TX_RATE_MAX_TPC_ENABLE);
+       } else {
+               /* Disable TPC */
+               REG_WRITE(ah, AR_PHY_POWER_TX_RATE_MAX, MAX_RATE_POWER);
+       }
+
        REGWRITE_BUFFER_FLUSH(ah);
 }