ath9k: ath9k_hw_set_txpowerlimit sets previous txpower
authorBill Jordan <bjordan@rajant.com>
Wed, 31 Aug 2011 21:51:00 +0000 (17:51 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 13 Sep 2011 19:53:46 +0000 (15:53 -0400)
In commit 9c204b46c7af93e334114bea1f5eeaa6fea9ba07
(ath9k_hw: do not limit initial tx power to 20 dbm),
setting of txpower was broken.

This patch fixes it by initializing reg_pwr from the new
power limit, not the previous value.

Signed-off-by: Bill Jordan <bjordan@rajant.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/hw.c

index 16884c4..47d10a4 100644 (file)
@@ -2451,13 +2451,13 @@ 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 reg_pwr = min_t(int, MAX_RATE_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);
+       regulatory->power_limit = reg_pwr;
 
        ah->eep_ops->set_txpower(ah, chan,
                                 ath9k_regd_get_ctl(regulatory, chan),