ath9k_hw: do not limit initial tx power to 20 dbm
authorFelix Fietkau <nbd@openwrt.org>
Wed, 27 Jul 2011 13:01:05 +0000 (15:01 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 8 Aug 2011 20:04:17 +0000 (16:04 -0400)
When testing for tx power, bypass the default limits.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/hw.c

index 8dcefe74f4c39ec768bc06979e3c305d086090b3..cb0b6aab7115623e5d2cc8c4278e0f2ad9d86cf5 100644 (file)
@@ -2439,15 +2439,18 @@ void ath9k_hw_set_txpowerlimit(struct ath_hw *ah, u32 limit, bool test)
        struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
        struct ath9k_channel *chan = ah->curchan;
        struct ieee80211_channel *channel = chan->chan;
+       int reg_pwr = min_t(int, MAX_RATE_POWER, regulatory->power_limit);
+       int chan_pwr = channel->max_power * 2;
+
+       if (test)
+               reg_pwr = chan_pwr = MAX_RATE_POWER;
 
        regulatory->power_limit = min(limit, (u32) MAX_RATE_POWER);
 
        ah->eep_ops->set_txpower(ah, chan,
                                 ath9k_regd_get_ctl(regulatory, chan),
                                 channel->max_antenna_gain * 2,
-                                channel->max_power * 2,
-                                min((u32) MAX_RATE_POWER,
-                                (u32) regulatory->power_limit), test);
+                                chan_pwr, reg_pwr, test);
 }
 EXPORT_SYMBOL(ath9k_hw_set_txpowerlimit);