1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-01 03:49:41 +02:00
openwrt-xburst/package/mac80211/patches/555-ath9k_cur_txpower.patch
nbd 99a41c0ace ath9k: fold patches that were merged upstream into 300-pending_work.patch
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27860 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-01 12:15:15 +00:00

36 lines
1.2 KiB
Diff

--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1727,6 +1727,8 @@ static int ath9k_config(struct ieee80211
return -EINVAL;
}
+ conf->cur_power_level = sc->curtxpow / 2;
+
/*
* The most recent snapshot of channel->noisefloor for the old
* channel is only available after the hardware reset. Copy it to
@@ -1744,6 +1746,7 @@ static int ath9k_config(struct ieee80211
ath9k_cmn_update_txpow(ah, sc->curtxpow,
sc->config.txpowlimit, &sc->curtxpow);
ath9k_ps_restore(sc);
+ conf->cur_power_level = sc->curtxpow / 2;
}
if (disable_radio) {
--- a/drivers/net/wireless/ath/ath9k/common.c
+++ b/drivers/net/wireless/ath/ath9k/common.c
@@ -161,10 +161,12 @@ EXPORT_SYMBOL(ath9k_cmn_count_streams);
void ath9k_cmn_update_txpow(struct ath_hw *ah, u16 cur_txpow,
u16 new_txpow, u16 *txpower)
{
+ struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
+
if (cur_txpow != new_txpow) {
ath9k_hw_set_txpowerlimit(ah, new_txpow, false);
/* read back in case value is clamped */
- *txpower = ath9k_hw_regulatory(ah)->power_limit;
+ *txpower = min_t(u16, reg->power_limit, reg->max_power_level);
}
}
EXPORT_SYMBOL(ath9k_cmn_update_txpow);