diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/eeprom.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/eeprom.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/eeprom.c b/drivers/net/wireless/ath/ath9k/eeprom.c index ca8704a9d7ac..1266333f586d 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom.c +++ b/drivers/net/wireless/ath/ath9k/eeprom.c | |||
@@ -24,6 +24,14 @@ static inline u16 ath9k_hw_fbin2freq(u8 fbin, bool is2GHz) | |||
24 | return (u16) ((is2GHz) ? (2300 + fbin) : (4800 + 5 * fbin)); | 24 | return (u16) ((is2GHz) ? (2300 + fbin) : (4800 + 5 * fbin)); |
25 | } | 25 | } |
26 | 26 | ||
27 | void ath9k_hw_analog_shift_regwrite(struct ath_hw *ah, u32 reg, u32 val) | ||
28 | { | ||
29 | REG_WRITE(ah, reg, val); | ||
30 | |||
31 | if (ah->config.analog_shiftreg) | ||
32 | udelay(100); | ||
33 | } | ||
34 | |||
27 | void ath9k_hw_analog_shift_rmw(struct ath_hw *ah, u32 reg, u32 mask, | 35 | void ath9k_hw_analog_shift_rmw(struct ath_hw *ah, u32 reg, u32 mask, |
28 | u32 shift, u32 val) | 36 | u32 shift, u32 val) |
29 | { | 37 | { |
@@ -250,6 +258,27 @@ u16 ath9k_hw_get_max_edge_power(u16 freq, struct cal_ctl_edges *pRdEdgesPower, | |||
250 | return twiceMaxEdgePower; | 258 | return twiceMaxEdgePower; |
251 | } | 259 | } |
252 | 260 | ||
261 | void ath9k_hw_update_regulatory_maxpower(struct ath_hw *ah) | ||
262 | { | ||
263 | struct ath_common *common = ath9k_hw_common(ah); | ||
264 | struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah); | ||
265 | |||
266 | switch (ar5416_get_ntxchains(ah->txchainmask)) { | ||
267 | case 1: | ||
268 | break; | ||
269 | case 2: | ||
270 | regulatory->max_power_level += INCREASE_MAXPOW_BY_TWO_CHAIN; | ||
271 | break; | ||
272 | case 3: | ||
273 | regulatory->max_power_level += INCREASE_MAXPOW_BY_THREE_CHAIN; | ||
274 | break; | ||
275 | default: | ||
276 | ath_print(common, ATH_DBG_EEPROM, | ||
277 | "Invalid chainmask configuration\n"); | ||
278 | break; | ||
279 | } | ||
280 | } | ||
281 | |||
253 | int ath9k_hw_eeprom_init(struct ath_hw *ah) | 282 | int ath9k_hw_eeprom_init(struct ath_hw *ah) |
254 | { | 283 | { |
255 | int status; | 284 | int status; |