diff options
Diffstat (limited to 'package/mac80211/patches/553-ath9k-configure-RF-channel-frequency-for-AR9330.patch')
-rw-r--r-- | package/mac80211/patches/553-ath9k-configure-RF-channel-frequency-for-AR9330.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/package/mac80211/patches/553-ath9k-configure-RF-channel-frequency-for-AR9330.patch b/package/mac80211/patches/553-ath9k-configure-RF-channel-frequency-for-AR9330.patch new file mode 100644 index 0000000000..03123ac205 --- /dev/null +++ b/package/mac80211/patches/553-ath9k-configure-RF-channel-frequency-for-AR9330.patch @@ -0,0 +1,25 @@ +diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c +index 1194eeb..a0ca1eb 100644 +--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c ++++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c +@@ -75,7 +75,19 @@ static int ar9003_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan) + freq = centers.synth_center; + + if (freq < 4800) { /* 2 GHz, fractional mode */ +- if (AR_SREV_9485(ah)) { ++ if (AR_SREV_9330(ah)) { ++ u32 chan_frac; ++ u32 div; ++ ++ if (ah->is_clk_25mhz) ++ div = 75; ++ else ++ div = 120; ++ ++ channelSel = (freq * 4) / div; ++ chan_frac = (((freq * 4) % div) * 0x20000) / div; ++ channelSel = (channelSel << 17) | chan_frac; ++ } else if (AR_SREV_9485(ah)) { + u32 chan_frac; + + /* |