diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2012-04-14 16:01:58 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-04-16 14:38:53 -0400 |
commit | ea6f792b2b893249e0eeffdb3fe0ea191eaf80d7 (patch) | |
tree | 1e306360812654cd4988b09ea01ab8eb53c8cf37 /drivers/net/wireless/ath/ath9k/eeprom_def.c | |
parent | 21bd6ea3116998e429dad796bce785e18df39daa (diff) |
ath9k: introduce ath9k_hw_get_scaled_power helper
The computation of the scaled power value in
various eeprom files uses identical code. Move
that code into a helper function and use that
instead of code duplication.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/eeprom_def.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/eeprom_def.c | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_def.c b/drivers/net/wireless/ath/ath9k/eeprom_def.c index 6a85796a342c..b5fba8b18b8b 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom_def.c +++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c | |||
@@ -991,9 +991,6 @@ static void ath9k_hw_set_def_power_per_rate_table(struct ath_hw *ah, | |||
991 | u16 antenna_reduction, | 991 | u16 antenna_reduction, |
992 | u16 powerLimit) | 992 | u16 powerLimit) |
993 | { | 993 | { |
994 | #define REDUCE_SCALED_POWER_BY_TWO_CHAIN 6 /* 10*log10(2)*2 */ | ||
995 | #define REDUCE_SCALED_POWER_BY_THREE_CHAIN 10 /* 10*log10(3)*2 */ | ||
996 | |||
997 | struct ar5416_eeprom_def *pEepData = &ah->eeprom.def; | 994 | struct ar5416_eeprom_def *pEepData = &ah->eeprom.def; |
998 | u16 twiceMaxEdgePower; | 995 | u16 twiceMaxEdgePower; |
999 | int i; | 996 | int i; |
@@ -1027,24 +1024,8 @@ static void ath9k_hw_set_def_power_per_rate_table(struct ath_hw *ah, | |||
1027 | 1024 | ||
1028 | ath9k_hw_get_channel_centers(ah, chan, ¢ers); | 1025 | ath9k_hw_get_channel_centers(ah, chan, ¢ers); |
1029 | 1026 | ||
1030 | scaledPower = powerLimit - antenna_reduction; | 1027 | scaledPower = ath9k_hw_get_scaled_power(ah, powerLimit, |
1031 | 1028 | antenna_reduction); | |
1032 | switch (ar5416_get_ntxchains(tx_chainmask)) { | ||
1033 | case 1: | ||
1034 | break; | ||
1035 | case 2: | ||
1036 | if (scaledPower > REDUCE_SCALED_POWER_BY_TWO_CHAIN) | ||
1037 | scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN; | ||
1038 | else | ||
1039 | scaledPower = 0; | ||
1040 | break; | ||
1041 | case 3: | ||
1042 | if (scaledPower > REDUCE_SCALED_POWER_BY_THREE_CHAIN) | ||
1043 | scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN; | ||
1044 | else | ||
1045 | scaledPower = 0; | ||
1046 | break; | ||
1047 | } | ||
1048 | 1029 | ||
1049 | if (IS_CHAN_2GHZ(chan)) { | 1030 | if (IS_CHAN_2GHZ(chan)) { |
1050 | numCtlModes = ARRAY_SIZE(ctlModesFor11g) - | 1031 | numCtlModes = ARRAY_SIZE(ctlModesFor11g) - |