diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ar9002_phy.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9002_phy.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_phy.c b/drivers/net/wireless/ath/ath9k/ar9002_phy.c index adbf031fbc5a..cd56c8692705 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_phy.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_phy.c | |||
@@ -530,3 +530,38 @@ void ar9002_hw_attach_phy_ops(struct ath_hw *ah) | |||
530 | 530 | ||
531 | ar9002_hw_set_nf_limits(ah); | 531 | ar9002_hw_set_nf_limits(ah); |
532 | } | 532 | } |
533 | |||
534 | void ath9k_hw_antdiv_comb_conf_get(struct ath_hw *ah, | ||
535 | struct ath_hw_antcomb_conf *antconf) | ||
536 | { | ||
537 | u32 regval; | ||
538 | |||
539 | regval = REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL); | ||
540 | antconf->main_lna_conf = (regval & AR_PHY_9285_ANT_DIV_MAIN_LNACONF) >> | ||
541 | AR_PHY_9285_ANT_DIV_MAIN_LNACONF_S; | ||
542 | antconf->alt_lna_conf = (regval & AR_PHY_9285_ANT_DIV_ALT_LNACONF) >> | ||
543 | AR_PHY_9285_ANT_DIV_ALT_LNACONF_S; | ||
544 | antconf->fast_div_bias = (regval & AR_PHY_9285_FAST_DIV_BIAS) >> | ||
545 | AR_PHY_9285_FAST_DIV_BIAS_S; | ||
546 | } | ||
547 | EXPORT_SYMBOL(ath9k_hw_antdiv_comb_conf_get); | ||
548 | |||
549 | void ath9k_hw_antdiv_comb_conf_set(struct ath_hw *ah, | ||
550 | struct ath_hw_antcomb_conf *antconf) | ||
551 | { | ||
552 | u32 regval; | ||
553 | |||
554 | regval = REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL); | ||
555 | regval &= ~(AR_PHY_9285_ANT_DIV_MAIN_LNACONF | | ||
556 | AR_PHY_9285_ANT_DIV_ALT_LNACONF | | ||
557 | AR_PHY_9285_FAST_DIV_BIAS); | ||
558 | regval |= ((antconf->main_lna_conf << AR_PHY_9285_ANT_DIV_MAIN_LNACONF_S) | ||
559 | & AR_PHY_9285_ANT_DIV_MAIN_LNACONF); | ||
560 | regval |= ((antconf->alt_lna_conf << AR_PHY_9285_ANT_DIV_ALT_LNACONF_S) | ||
561 | & AR_PHY_9285_ANT_DIV_ALT_LNACONF); | ||
562 | regval |= ((antconf->fast_div_bias << AR_PHY_9285_FAST_DIV_BIAS_S) | ||
563 | & AR_PHY_9285_FAST_DIV_BIAS); | ||
564 | |||
565 | REG_WRITE(ah, AR_PHY_MULTICHAIN_GAIN_CTL, regval); | ||
566 | } | ||
567 | EXPORT_SYMBOL(ath9k_hw_antdiv_comb_conf_set); | ||