ath9k: simplify ath9k_hw_get_scaled_power function
authorGabor Juhos <juhosg@openwrt.org>
Sat, 14 Apr 2012 20:01:59 +0000 (22:01 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 16 Apr 2012 18:38:54 +0000 (14:38 -0400)
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/eeprom.c

index 61bad99..6a64dec 100644 (file)
@@ -293,9 +293,7 @@ u16 ath9k_hw_get_max_edge_power(u16 freq, struct cal_ctl_edges *pRdEdgesPower,
 u16 ath9k_hw_get_scaled_power(struct ath_hw *ah, u16 power_limit,
                              u8 antenna_reduction)
 {
-       u16 scaled_power;
-
-       scaled_power = power_limit - antenna_reduction;
+       u16 reduction = antenna_reduction;
 
        /*
         * 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,
        case 1:
                break;
        case 2:
-               if (scaled_power > REDUCE_SCALED_POWER_BY_TWO_CHAIN)
-                       scaled_power -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
-               else
-                       scaled_power = 0;
+               reduction += REDUCE_SCALED_POWER_BY_TWO_CHAIN;
                break;
        case 3:
-               if (scaled_power > REDUCE_SCALED_POWER_BY_THREE_CHAIN)
-                       scaled_power -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
-               else
-                       scaled_power = 0;
+               reduction += REDUCE_SCALED_POWER_BY_THREE_CHAIN;
                break;
        }
 
-       scaled_power = max((u16)0, scaled_power);
+       if (power_limit > reduction)
+               power_limit -= reduction;
+       else
+               power_limit = 0;
 
-       return scaled_power;
+       return power_limit;
 }
 
 void ath9k_hw_update_regulatory_maxpower(struct ath_hw *ah)