ath9k_hw: Initialize tx/rx gain table from initvals.h for AR9485
authorVasanthakumar Thiagarajan <vasanth@atheros.com>
Mon, 6 Dec 2010 12:27:38 +0000 (04:27 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 7 Dec 2010 21:34:51 +0000 (16:34 -0500)
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_hw.c

index f01c2891f7c359f11d9b667a0c7dfa739ed37731..21a5bfe354a0cbf94b1cc23909de7113afc602da 100644 (file)
@@ -175,22 +175,52 @@ static void ar9003_tx_gain_table_apply(struct ath_hw *ah)
        switch (ar9003_hw_get_tx_gain_idx(ah)) {
        case 0:
        default:
-               INIT_INI_ARRAY(&ah->iniModesTxGain,
-                              ar9300Modes_lowest_ob_db_tx_gain_table_2p2,
-                              ARRAY_SIZE(ar9300Modes_lowest_ob_db_tx_gain_table_2p2),
-                              5);
+               if (AR_SREV_9485(ah))
+                       INIT_INI_ARRAY(&ah->iniModesTxGain,
+                                      ar9485Modes_lowest_ob_db_tx_gain_1_0,
+                                      ARRAY_SIZE(ar9485Modes_lowest_ob_db_tx_gain_1_0),
+                                      5);
+               else
+                       INIT_INI_ARRAY(&ah->iniModesTxGain,
+                                      ar9300Modes_lowest_ob_db_tx_gain_table_2p2,
+                                      ARRAY_SIZE(ar9300Modes_lowest_ob_db_tx_gain_table_2p2),
+                                      5);
                break;
        case 1:
-               INIT_INI_ARRAY(&ah->iniModesTxGain,
-                              ar9300Modes_high_ob_db_tx_gain_table_2p2,
-                              ARRAY_SIZE(ar9300Modes_high_ob_db_tx_gain_table_2p2),
-                              5);
+               if (AR_SREV_9485(ah))
+                       INIT_INI_ARRAY(&ah->iniModesTxGain,
+                                      ar9485Modes_high_ob_db_tx_gain_1_0,
+                                      ARRAY_SIZE(ar9485Modes_lowest_ob_db_tx_gain_1_0),
+                                      5);
+               else
+                       INIT_INI_ARRAY(&ah->iniModesTxGain,
+                                      ar9300Modes_high_ob_db_tx_gain_table_2p2,
+                                      ARRAY_SIZE(ar9300Modes_high_ob_db_tx_gain_table_2p2),
+                                      5);
                break;
        case 2:
-               INIT_INI_ARRAY(&ah->iniModesTxGain,
-                              ar9300Modes_low_ob_db_tx_gain_table_2p2,
-                              ARRAY_SIZE(ar9300Modes_low_ob_db_tx_gain_table_2p2),
-                              5);
+               if (AR_SREV_9485(ah))
+                       INIT_INI_ARRAY(&ah->iniModesTxGain,
+                                      ar9485Modes_low_ob_db_tx_gain_1_0,
+                                      ARRAY_SIZE(ar9485Modes_lowest_ob_db_tx_gain_1_0),
+                                      5);
+               else
+                       INIT_INI_ARRAY(&ah->iniModesTxGain,
+                                      ar9300Modes_low_ob_db_tx_gain_table_2p2,
+                                      ARRAY_SIZE(ar9300Modes_low_ob_db_tx_gain_table_2p2),
+                                      5);
+               break;
+       case 3:
+               if (AR_SREV_9485(ah))
+                       INIT_INI_ARRAY(&ah->iniModesTxGain,
+                                      ar9485Modes_high_power_tx_gain_1_0,
+                                      ARRAY_SIZE(ar9485Modes_high_power_tx_gain_1_0),
+                                      5);
+               else
+                       INIT_INI_ARRAY(&ah->iniModesTxGain,
+                                      ar9300Modes_high_power_tx_gain_table_2p2,
+                                      ARRAY_SIZE(ar9300Modes_high_power_tx_gain_table_2p2),
+                                      5);
                break;
        }
 }
@@ -200,16 +230,28 @@ static void ar9003_rx_gain_table_apply(struct ath_hw *ah)
        switch (ar9003_hw_get_rx_gain_idx(ah)) {
        case 0:
        default:
-               INIT_INI_ARRAY(&ah->iniModesRxGain,
-                              ar9300Common_rx_gain_table_2p2,
-                              ARRAY_SIZE(ar9300Common_rx_gain_table_2p2),
-                              2);
+               if (AR_SREV_9485(ah))
+                       INIT_INI_ARRAY(&ah->iniModesRxGain,
+                                      ar9485Common_rx_gain_1_0,
+                                      ARRAY_SIZE(ar9485Common_rx_gain_1_0),
+                                      2);
+               else
+                       INIT_INI_ARRAY(&ah->iniModesRxGain,
+                                      ar9300Common_rx_gain_table_2p2,
+                                      ARRAY_SIZE(ar9300Common_rx_gain_table_2p2),
+                                      2);
                break;
        case 1:
-               INIT_INI_ARRAY(&ah->iniModesRxGain,
-                              ar9300Common_wo_xlna_rx_gain_table_2p2,
-                              ARRAY_SIZE(ar9300Common_wo_xlna_rx_gain_table_2p2),
-                              2);
+               if (AR_SREV_9485(ah))
+                       INIT_INI_ARRAY(&ah->iniModesRxGain,
+                                      ar9485Common_wo_xlna_rx_gain_1_0,
+                                      ARRAY_SIZE(ar9485Common_wo_xlna_rx_gain_1_0),
+                                      2);
+               else
+                       INIT_INI_ARRAY(&ah->iniModesRxGain,
+                                      ar9300Common_wo_xlna_rx_gain_table_2p2,
+                                      ARRAY_SIZE(ar9300Common_wo_xlna_rx_gain_table_2p2),
+                                      2);
                break;
        }
 }