X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fmac80211%2Fpatches%2F520-mac80211_cur_txpower.patch;h=4dac65c776bd07d4f7abee12922b5f1e1a7c8d30;hb=5c9fd3b2d26012f8b77d1f5c86bf0b9223460cf4;hp=9bb2ce8ae91683e7fafc09066f3605974373baca;hpb=33600679329458db7a0d258f3985daa52d98bf75;p=openwrt%2Fopenwrt.git diff --git a/package/mac80211/patches/520-mac80211_cur_txpower.patch b/package/mac80211/patches/520-mac80211_cur_txpower.patch index 9bb2ce8ae9..4dac65c776 100644 --- a/package/mac80211/patches/520-mac80211_cur_txpower.patch +++ b/package/mac80211/patches/520-mac80211_cur_txpower.patch @@ -1,32 +1,33 @@ --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -829,7 +829,7 @@ enum ieee80211_smps_mode { - */ - struct ieee80211_conf { - u32 flags; -- int power_level, dynamic_ps_timeout; -+ int cur_power_level, power_level, dynamic_ps_timeout; - int max_sleep_period; - - u16 listen_interval; +@@ -1508,6 +1508,7 @@ struct ieee80211_hw { + u8 max_tx_aggregation_subframes; + u8 offchannel_tx_hw_queue; + u8 radiotap_mcs_details; ++ s8 cur_power_level; + u16 radiotap_vht_details; + netdev_features_t netdev_features; + }; --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -1940,7 +1940,7 @@ static int ieee80211_get_tx_power(struct - { +@@ -2133,7 +2133,9 @@ static int ieee80211_get_tx_power(struct struct ieee80211_local *local = wiphy_priv(wiphy); + struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); -- *dbm = local->hw.conf.power_level; -+ *dbm = local->hw.conf.cur_power_level; - - return 0; - } +- if (!local->use_chanctx) ++ if (local->hw.cur_power_level) ++ *dbm = local->hw.cur_power_level; ++ else if (!local->use_chanctx) + *dbm = local->hw.conf.power_level; + else + *dbm = sdata->vif.bss_conf.txpower; --- a/net/mac80211/main.c +++ b/net/mac80211/main.c -@@ -167,6 +167,7 @@ int ieee80211_hw_config(struct ieee80211 +@@ -167,6 +167,7 @@ static u32 ieee80211_hw_conf_chan(struct if (local->hw.conf.power_level != power) { changed |= IEEE80211_CONF_CHANGE_POWER; -+ local->hw.conf.cur_power_level = power; ++ local->hw.cur_power_level = power; local->hw.conf.power_level = power; }