summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/531-ath9k_cur_txpower.patch
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-08-11 13:52:27 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-08-11 13:52:27 +0000
commit559f191cc256f9fc93405a74b0fb4dd9339424aa (patch)
tree3d6e1cf9fed773c35a5cfaec71f59a3633e80c7c /package/mac80211/patches/531-ath9k_cur_txpower.patch
parenta91dd7628bcc9af0b9d4516ad6adc9817a750488 (diff)
mac80211: update to 2011-08-10
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27958 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/531-ath9k_cur_txpower.patch')
-rw-r--r--package/mac80211/patches/531-ath9k_cur_txpower.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/package/mac80211/patches/531-ath9k_cur_txpower.patch b/package/mac80211/patches/531-ath9k_cur_txpower.patch
new file mode 100644
index 000000000..3c0a46675
--- /dev/null
+++ b/package/mac80211/patches/531-ath9k_cur_txpower.patch
@@ -0,0 +1,35 @@
+--- a/drivers/net/wireless/ath/ath9k/main.c
++++ b/drivers/net/wireless/ath/ath9k/main.c
+@@ -1731,6 +1731,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
+@@ -1748,6 +1750,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);