diff options
author | Mohammed Shafi Shajakhan <mshajakhan@atheros.com> | 2011-05-13 11:00:56 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-05-16 14:10:46 -0400 |
commit | 8afbcc8bfb549a522298fa4a31ee5155c2b5f7a0 (patch) | |
tree | 31161e2d3b6e6e531d5fd9c070e43c17c2ebfead | |
parent | 6bcbc062c23ac769cb775f3d2cf209db9d1a96fe (diff) |
ath9k_hw: define antenna diversity group
AR9285 belongs to diversity group 0 and AR9485 belongs to diversity
group 2. Based on the diversity group we configure certain antenna
diversity paramaters such as lna1_lna2_delta and fast diversity
bias values. For AR9485 we have some gain table parameter which
selects the gain table 0/1 for main and alternate antenna
Cc: Gabriel Tseng <Gabriel.Tseng@Atheros.com>
Cc: Senthilkumar Balasubramanian <Senthilkumar.Balasubramanian@Atheros.com>
Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9002_phy.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_phy.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ath9k.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/hw.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 2 |
5 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_phy.c b/drivers/net/wireless/ath/ath9k/ar9002_phy.c index b4a0c1d3b115..a57e963cf0dc 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_phy.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_phy.c | |||
@@ -529,6 +529,8 @@ static void ar9002_hw_antdiv_comb_conf_get(struct ath_hw *ah, | |||
529 | AR_PHY_9285_ANT_DIV_ALT_LNACONF_S; | 529 | AR_PHY_9285_ANT_DIV_ALT_LNACONF_S; |
530 | antconf->fast_div_bias = (regval & AR_PHY_9285_FAST_DIV_BIAS) >> | 530 | antconf->fast_div_bias = (regval & AR_PHY_9285_FAST_DIV_BIAS) >> |
531 | AR_PHY_9285_FAST_DIV_BIAS_S; | 531 | AR_PHY_9285_FAST_DIV_BIAS_S; |
532 | antconf->lna1_lna2_delta = -3; | ||
533 | antconf->div_group = 0; | ||
532 | } | 534 | } |
533 | 535 | ||
534 | static void ar9002_hw_antdiv_comb_conf_set(struct ath_hw *ah, | 536 | static void ar9002_hw_antdiv_comb_conf_set(struct ath_hw *ah, |
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c index d2a5d2737cd3..25f3c2fdf2bc 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c | |||
@@ -1196,6 +1196,8 @@ static void ar9003_hw_antdiv_comb_conf_get(struct ath_hw *ah, | |||
1196 | AR_PHY_9485_ANT_DIV_ALT_LNACONF_S; | 1196 | AR_PHY_9485_ANT_DIV_ALT_LNACONF_S; |
1197 | antconf->fast_div_bias = (regval & AR_PHY_9485_ANT_FAST_DIV_BIAS) >> | 1197 | antconf->fast_div_bias = (regval & AR_PHY_9485_ANT_FAST_DIV_BIAS) >> |
1198 | AR_PHY_9485_ANT_FAST_DIV_BIAS_S; | 1198 | AR_PHY_9485_ANT_FAST_DIV_BIAS_S; |
1199 | antconf->lna1_lna2_delta = -9; | ||
1200 | antconf->div_group = 2; | ||
1199 | } | 1201 | } |
1200 | 1202 | ||
1201 | static void ar9003_hw_antdiv_comb_conf_set(struct ath_hw *ah, | 1203 | static void ar9003_hw_antdiv_comb_conf_set(struct ath_hw *ah, |
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index f2f672bc5966..03b37d7be1c3 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -483,7 +483,6 @@ static inline void ath_deinit_leds(struct ath_softc *sc) | |||
483 | #define ATH_ANT_DIV_COMB_ALT_ANT_RATIO 30 | 483 | #define ATH_ANT_DIV_COMB_ALT_ANT_RATIO 30 |
484 | #define ATH_ANT_DIV_COMB_ALT_ANT_RATIO2 20 | 484 | #define ATH_ANT_DIV_COMB_ALT_ANT_RATIO2 20 |
485 | 485 | ||
486 | #define ATH_ANT_DIV_COMB_LNA1_LNA2_DELTA -3 | ||
487 | #define ATH_ANT_DIV_COMB_LNA1_LNA2_SWITCH_DELTA -1 | 486 | #define ATH_ANT_DIV_COMB_LNA1_LNA2_SWITCH_DELTA -1 |
488 | #define ATH_ANT_DIV_COMB_LNA1_DELTA_HI -4 | 487 | #define ATH_ANT_DIV_COMB_LNA1_DELTA_HI -4 |
489 | #define ATH_ANT_DIV_COMB_LNA1_DELTA_MID -2 | 488 | #define ATH_ANT_DIV_COMB_LNA1_DELTA_MID -2 |
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h index 80f512d1f975..7af2773d2bfc 100644 --- a/drivers/net/wireless/ath/ath9k/hw.h +++ b/drivers/net/wireless/ath/ath9k/hw.h | |||
@@ -482,6 +482,7 @@ struct ath_hw_antcomb_conf { | |||
482 | u8 main_gaintb; | 482 | u8 main_gaintb; |
483 | u8 alt_gaintb; | 483 | u8 alt_gaintb; |
484 | int lna1_lna2_delta; | 484 | int lna1_lna2_delta; |
485 | u8 div_group; | ||
485 | }; | 486 | }; |
486 | 487 | ||
487 | /** | 488 | /** |
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index 9fcd1e4f4504..85e05329a607 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -1442,7 +1442,7 @@ static void ath_ant_comb_scan(struct ath_softc *sc, struct ath_rx_status *rs) | |||
1442 | } | 1442 | } |
1443 | 1443 | ||
1444 | if ((alt_rssi_avg < (main_rssi_avg + | 1444 | if ((alt_rssi_avg < (main_rssi_avg + |
1445 | ATH_ANT_DIV_COMB_LNA1_LNA2_DELTA))) | 1445 | div_ant_conf.lna1_lna2_delta))) |
1446 | goto div_comb_done; | 1446 | goto div_comb_done; |
1447 | } | 1447 | } |
1448 | 1448 | ||