X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/9176f7d5a8c221823de2930b07cc1b109de23f7c..57b73bf423b68390a7ca428306ec0e30348e3401:/package/mac80211/patches/531-ath9k_cur_txpower.patch?ds=inline diff --git a/package/mac80211/patches/531-ath9k_cur_txpower.patch b/package/mac80211/patches/531-ath9k_cur_txpower.patch index 8e104d9fe..46f2004ae 100644 --- a/package/mac80211/patches/531-ath9k_cur_txpower.patch +++ b/package/mac80211/patches/531-ath9k_cur_txpower.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -1732,6 +1732,8 @@ static int ath9k_config(struct ieee80211 +@@ -1653,6 +1653,8 @@ int ath9k_config(struct ieee80211_hw *hw return -EINVAL; } @@ -9,27 +9,11 @@ /* * The most recent snapshot of channel->noisefloor for the old * channel is only available after the hardware reset. Copy it to -@@ -1749,6 +1751,7 @@ static int ath9k_config(struct ieee80211 +@@ -1667,6 +1669,7 @@ int ath9k_config(struct ieee80211_hw *hw + sc->config.txpowlimit = 2 * conf->power_level; 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); + mutex_unlock(&sc->mutex);