aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-04-14 16:01:59 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-04-16 14:38:54 -0400
commit8f942b9b8165eb4079d38979ec37a2bf3f983761 (patch)
tree28fd2ee8071a7d0549f38aa6fc6c3e2db891b899
parentea6f792b2b893249e0eeffdb3fe0ea191eaf80d7 (diff)
ath9k: simplify ath9k_hw_get_scaled_power function
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath9k/eeprom.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/net/wireless/ath/ath9k/eeprom.c b/drivers/net/wireless/ath/ath9k/eeprom.c
index 61bad99e76dd..6a64dec486d0 100644
--- a/drivers/net/wireless/ath/ath9k/eeprom.c
+++ b/drivers/net/wireless/ath/ath9k/eeprom.c
@@ -293,9 +293,7 @@ u16 ath9k_hw_get_max_edge_power(u16 freq, struct cal_ctl_edges *pRdEdgesPower,
293u16 ath9k_hw_get_scaled_power(struct ath_hw *ah, u16 power_limit, 293u16 ath9k_hw_get_scaled_power(struct ath_hw *ah, u16 power_limit,
294 u8 antenna_reduction) 294 u8 antenna_reduction)
295{ 295{
296 u16 scaled_power; 296 u16 reduction = antenna_reduction;
297
298 scaled_power = power_limit - antenna_reduction;
299 297
300 /* 298 /*
301 * Reduce scaled Power by number of chains active 299 * Reduce scaled Power by number of chains active
@@ -305,22 +303,19 @@ u16 ath9k_hw_get_scaled_power(struct ath_hw *ah, u16 power_limit,
305 case 1: 303 case 1:
306 break; 304 break;
307 case 2: 305 case 2:
308 if (scaled_power > REDUCE_SCALED_POWER_BY_TWO_CHAIN) 306 reduction += REDUCE_SCALED_POWER_BY_TWO_CHAIN;
309 scaled_power -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
310 else
311 scaled_power = 0;
312 break; 307 break;
313 case 3: 308 case 3:
314 if (scaled_power > REDUCE_SCALED_POWER_BY_THREE_CHAIN) 309 reduction += REDUCE_SCALED_POWER_BY_THREE_CHAIN;
315 scaled_power -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
316 else
317 scaled_power = 0;
318 break; 310 break;
319 } 311 }
320 312
321 scaled_power = max((u16)0, scaled_power); 313 if (power_limit > reduction)
314 power_limit -= reduction;
315 else
316 power_limit = 0;
322 317
323 return scaled_power; 318 return power_limit;
324} 319}
325 320
326void ath9k_hw_update_regulatory_maxpower(struct ath_hw *ah) 321void ath9k_hw_update_regulatory_maxpower(struct ath_hw *ah)