OSDN Git Service

ath9k_hw: Use HW cap ATH9K_HW_CAP_ANT_DIV_COMB
authorSujith Manoharan <c_manoha@qualcomm.com>
Sun, 16 Sep 2012 02:35:23 +0000 (08:05 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 24 Sep 2012 18:59:10 +0000 (14:59 -0400)
Instead of trying to determine whether antenna diversity is
enabled by parsing eeprom data, use ATH9K_HW_CAP_ANT_DIV_COMB
which is already filled at init time.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c

index b5659cb..8d434df 100644 (file)
@@ -3562,9 +3562,9 @@ static u16 ar9003_hw_ant_ctrl_chain_get(struct ath_hw *ah, int chain,
 
 static void ar9003_hw_ant_ctrl_apply(struct ath_hw *ah, bool is2ghz)
 {
+       struct ath9k_hw_capabilities *pCap = &ah->caps;
        int chain;
        u32 regval;
-       u32 ant_div_ctl1;
        static const u32 switch_chain_reg[AR9300_MAX_CHAINS] = {
                        AR_PHY_SWITCH_CHAIN_0,
                        AR_PHY_SWITCH_CHAIN_1,
@@ -3636,9 +3636,8 @@ static void ar9003_hw_ant_ctrl_apply(struct ath_hw *ah, bool is2ghz)
                regval &= (~AR_FAST_DIV_ENABLE);
                regval |= ((value >> 7) & 0x1) << AR_FAST_DIV_ENABLE_S;
                REG_WRITE(ah, AR_PHY_CCK_DETECT, regval);
-               ant_div_ctl1 = ah->eep_ops->get_eeprom(ah, EEP_ANT_DIV_CTL1);
-               /* check whether antenna diversity is enabled */
-               if ((ant_div_ctl1 >> 0x6) == 0x3) {
+
+               if (pCap->hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB) {
                        regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
                        /*
                         * clear bits 25-30 main_lnaconf, alt_lnaconf,
@@ -3655,10 +3654,7 @@ static void ar9003_hw_ant_ctrl_apply(struct ath_hw *ah, bool is2ghz)
                                   AR_PHY_ANT_DIV_ALT_LNACONF_S);
                        REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval);
                }
-
-
        }
-
 }
 
 static void ar9003_hw_drive_strength_apply(struct ath_hw *ah)