summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/hw.c
diff options
context:
space:
mode:
authorFelix Fietkau2011-07-27 15:01:05 +0200
committerJohn W. Linville2011-08-08 22:04:17 +0200
commit9c204b46c7af93e334114bea1f5eeaa6fea9ba07 (patch)
tree0de1dd9a9fa0644b141087e4e525c7d40af2e559 /drivers/net/wireless/ath/ath9k/hw.c
parentath9k_hw: fix calculated runtime tx power limit (diff)
downloadkernel-qcow2-linux-9c204b46c7af93e334114bea1f5eeaa6fea9ba07.tar.gz
kernel-qcow2-linux-9c204b46c7af93e334114bea1f5eeaa6fea9ba07.tar.xz
kernel-qcow2-linux-9c204b46c7af93e334114bea1f5eeaa6fea9ba07.zip
ath9k_hw: do not limit initial tx power to 20 dbm
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>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/hw.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 8dcefe74f4c3..cb0b6aab7115 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -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);