summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/520-mac80211_cur_txpower.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/520-mac80211_cur_txpower.patch')
-rw-r--r--package/mac80211/patches/520-mac80211_cur_txpower.patch37
1 files changed, 19 insertions, 18 deletions
diff --git a/package/mac80211/patches/520-mac80211_cur_txpower.patch b/package/mac80211/patches/520-mac80211_cur_txpower.patch
index bef6f2999..80d3c568e 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
-@@ -863,7 +863,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;
+@@ -1605,6 +1605,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;
+ u8 uapsd_queues;
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
-@@ -1969,7 +1969,7 @@ static int ieee80211_get_tx_power(struct
- {
+@@ -2259,7 +2259,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;
}