aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2011-04-19 09:59:08 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-04-25 14:50:10 -0400
commit17869f4fe940407b5b80039110c0257c90e18a99 (patch)
tree151b71be3380dd9ef7b292b7319c671ac7a53ada
parentd1395d85fa58438c70b77185b7c5780b94046348 (diff)
ath9k_hw: Configure RF channel freqency for AR9340
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_phy.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
index 0b999f94cd95..ea2f60c08f8b 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
@@ -86,14 +86,31 @@ static int ar9003_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
86 channelSel = (freq * 4) / 120; 86 channelSel = (freq * 4) / 120;
87 chan_frac = (((freq * 4) % 120) * 0x20000) / 120; 87 chan_frac = (((freq * 4) % 120) * 0x20000) / 120;
88 channelSel = (channelSel << 17) | chan_frac; 88 channelSel = (channelSel << 17) | chan_frac;
89 } else if (AR_SREV_9340(ah)) {
90 if (ah->is_clk_25mhz) {
91 u32 chan_frac;
92
93 channelSel = (freq * 2) / 75;
94 chan_frac = (((freq * 2) % 75) * 0x20000) / 75;
95 channelSel = (channelSel << 17) | chan_frac;
96 } else
97 channelSel = CHANSEL_2G(freq) >> 1;
89 } else 98 } else
90 channelSel = CHANSEL_2G(freq); 99 channelSel = CHANSEL_2G(freq);
91 /* Set to 2G mode */ 100 /* Set to 2G mode */
92 bMode = 1; 101 bMode = 1;
93 } else { 102 } else {
94 channelSel = CHANSEL_5G(freq); 103 if (AR_SREV_9340(ah) && ah->is_clk_25mhz) {
95 /* Doubler is ON, so, divide channelSel by 2. */ 104 u32 chan_frac;
96 channelSel >>= 1; 105
106 channelSel = (freq * 2) / 75;
107 chan_frac = ((freq % 75) * 0x20000) / 75;
108 channelSel = (channelSel << 17) | chan_frac;
109 } else {
110 channelSel = CHANSEL_5G(freq);
111 /* Doubler is ON, so, divide channelSel by 2. */
112 channelSel >>= 1;
113 }
97 /* Set to 5G mode */ 114 /* Set to 5G mode */
98 bMode = 0; 115 bMode = 0;
99 } 116 }