ath9k: Clean up the way the eeprom antenna configuration is read
authorVasanthakumar Thiagarajan <vasanth@atheros.com>
Fri, 23 Jan 2009 09:10:37 +0000 (14:40 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 29 Jan 2009 21:01:25 +0000 (16:01 -0500)
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath9k/ath9k.h
drivers/net/wireless/ath9k/eeprom.c

index 455a536..5289d28 100644 (file)
@@ -974,9 +974,8 @@ bool ath9k_hw_set_power_cal_table(struct ath_hal *ah,
                                  int16_t *pTxPowerIndexOffset);
 bool ath9k_hw_eeprom_set_board_values(struct ath_hal *ah,
                                      struct ath9k_channel *chan);
-int ath9k_hw_get_eeprom_antenna_cfg(struct ath_hal *ah,
-                                   struct ath9k_channel *chan,
-                                   u8 index, u16 *config);
+u16 ath9k_hw_get_eeprom_antenna_cfg(struct ath_hal *ah,
+                                   struct ath9k_channel *chan);
 u8 ath9k_hw_get_num_ant_config(struct ath_hal *ah,
                               enum ieee80211_band freq_band);
 u16 ath9k_hw_eeprom_get_spur_chan(struct ath_hal *ah, u16 i, bool is2GHz);
index 50cb388..5038907 100644 (file)
@@ -2085,14 +2085,13 @@ static bool ath9k_hw_eeprom_set_def_board_values(struct ath_hal *ah,
        struct ar5416_eeprom_def *eep = &ahp->ah_eeprom.def;
        int i, regChainOffset;
        u8 txRxAttenLocal;
-       u16 ant_config;
 
        pModal = &(eep->modalHeader[IS_CHAN_2GHZ(chan)]);
 
        txRxAttenLocal = IS_CHAN_2GHZ(chan) ? 23 : 44;
 
-       ath9k_hw_get_eeprom_antenna_cfg(ah, chan, 0, &ant_config);
-       REG_WRITE(ah, AR_PHY_SWITCH_COM, ant_config);
+       REG_WRITE(ah, AR_PHY_SWITCH_COM,
+                 ath9k_hw_get_eeprom_antenna_cfg(ah, chan));
 
        for (i = 0; i < AR5416_MAX_CHAINS; i++) {
                if (AR_SREV_9280(ah)) {
@@ -2330,7 +2329,6 @@ static bool ath9k_hw_eeprom_set_4k_board_values(struct ath_hal *ah,
        struct ar5416_eeprom_4k *eep = &ahp->ah_eeprom.map4k;
        int regChainOffset;
        u8 txRxAttenLocal;
-       u16 ant_config = 0;
        u8 ob[5], db1[5], db2[5];
        u8 ant_div_control1, ant_div_control2;
        u32 regVal;
@@ -2340,8 +2338,8 @@ static bool ath9k_hw_eeprom_set_4k_board_values(struct ath_hal *ah,
 
        txRxAttenLocal = 23;
 
-       ath9k_hw_get_eeprom_antenna_cfg(ah, chan, 0, &ant_config);
-       REG_WRITE(ah, AR_PHY_SWITCH_COM, ant_config);
+       REG_WRITE(ah, AR_PHY_SWITCH_COM,
+                 ath9k_hw_get_eeprom_antenna_cfg(ah, chan));
 
        regChainOffset = 0;
        REG_WRITE(ah, AR_PHY_SWITCH_CHAIN_0 + regChainOffset,
@@ -2524,70 +2522,39 @@ bool ath9k_hw_eeprom_set_board_values(struct ath_hal *ah,
        return ath9k_eeprom_set_board_values[ahp->ah_eep_map](ah, chan);
 }
 
-static int ath9k_hw_get_def_eeprom_antenna_cfg(struct ath_hal *ah,
-                                   struct ath9k_channel *chan,
-                                   u8 index, u16 *config)
+static u16 ath9k_hw_get_def_eeprom_antenna_cfg(struct ath_hal *ah,
+                                              struct ath9k_channel *chan)
 {
        struct ath_hal_5416 *ahp = AH5416(ah);
        struct ar5416_eeprom_def *eep = &ahp->ah_eeprom.def;
        struct modal_eep_header *pModal =
                &(eep->modalHeader[IS_CHAN_2GHZ(chan)]);
-       struct base_eep_header *pBase = &eep->baseEepHeader;
 
-       switch (index) {
-       case 0:
-               *config = pModal->antCtrlCommon & 0xFFFF;
-               return 0;
-       case 1:
-               if (pBase->version >= 0x0E0D) {
-                       if (pModal->useAnt1) {
-                               *config =
-                               ((pModal->antCtrlCommon & 0xFFFF0000) >> 16);
-                               return 0;
-                       }
-               }
-               break;
-       default:
-               break;
-       }
-
-       return -EINVAL;
+       return pModal->antCtrlCommon & 0xFFFF;
 }
 
-static int ath9k_hw_get_4k_eeprom_antenna_cfg(struct ath_hal *ah,
-                                   struct ath9k_channel *chan,
-                                   u8 index, u16 *config)
+static u16 ath9k_hw_get_4k_eeprom_antenna_cfg(struct ath_hal *ah,
+                                             struct ath9k_channel *chan)
 {
        struct ath_hal_5416 *ahp = AH5416(ah);
        struct ar5416_eeprom_4k *eep = &ahp->ah_eeprom.map4k;
        struct modal_eep_4k_header *pModal = &eep->modalHeader;
 
-       switch (index) {
-       case 0:
-               *config = pModal->antCtrlCommon & 0xFFFF;
-               return 0;
-       default:
-               break;
-       }
-
-       return -EINVAL;
+       return pModal->antCtrlCommon & 0xFFFF;
 }
 
-static int (*ath9k_get_eeprom_antenna_cfg[])(struct ath_hal *,
-                                            struct ath9k_channel *,
-                                            u8, u16 *) = {
+static u16 (*ath9k_get_eeprom_antenna_cfg[])(struct ath_hal *,
+                                            struct ath9k_channel *) = {
        ath9k_hw_get_def_eeprom_antenna_cfg,
        ath9k_hw_get_4k_eeprom_antenna_cfg
 };
 
-int ath9k_hw_get_eeprom_antenna_cfg(struct ath_hal *ah,
-                                   struct ath9k_channel *chan,
-                                   u8 index, u16 *config)
+u16 ath9k_hw_get_eeprom_antenna_cfg(struct ath_hal *ah,
+                                   struct ath9k_channel *chan)
 {
        struct ath_hal_5416 *ahp = AH5416(ah);
 
-       return ath9k_get_eeprom_antenna_cfg[ahp->ah_eep_map](ah, chan,
-                                                            index, config);
+       return ath9k_get_eeprom_antenna_cfg[ahp->ah_eep_map](ah, chan);
 }
 
 static u8 ath9k_hw_get_4k_num_ant_config(struct ath_hal *ah,