2011-07-26 20:53:40 +00:00
|
|
|
--- a/include/net/mac80211.h
|
|
|
|
+++ b/include/net/mac80211.h
|
2014-09-27 20:51:43 +00:00
|
|
|
@@ -1754,6 +1754,7 @@ struct ieee80211_hw {
|
2012-09-28 18:29:02 +00:00
|
|
|
u8 max_tx_aggregation_subframes;
|
|
|
|
u8 offchannel_tx_hw_queue;
|
|
|
|
u8 radiotap_mcs_details;
|
|
|
|
+ s8 cur_power_level;
|
2012-12-07 16:46:04 +00:00
|
|
|
u16 radiotap_vht_details;
|
2012-09-28 18:29:02 +00:00
|
|
|
netdev_features_t netdev_features;
|
2013-04-26 10:52:03 +00:00
|
|
|
u8 uapsd_queues;
|
2011-07-26 20:53:40 +00:00
|
|
|
--- a/net/mac80211/cfg.c
|
|
|
|
+++ b/net/mac80211/cfg.c
|
2014-09-27 20:51:43 +00:00
|
|
|
@@ -2081,7 +2081,9 @@ static int ieee80211_get_tx_power(struct
|
2011-07-26 20:53:40 +00:00
|
|
|
struct ieee80211_local *local = wiphy_priv(wiphy);
|
2012-12-07 16:46:04 +00:00
|
|
|
struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
|
2011-07-26 20:53:40 +00:00
|
|
|
|
2012-12-07 16:46:04 +00:00
|
|
|
- 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;
|
2011-07-26 20:53:40 +00:00
|
|
|
--- a/net/mac80211/main.c
|
|
|
|
+++ b/net/mac80211/main.c
|
2014-09-27 20:51:43 +00:00
|
|
|
@@ -157,6 +157,7 @@ static u32 ieee80211_hw_conf_chan(struct
|
2011-07-26 20:53:40 +00:00
|
|
|
|
|
|
|
if (local->hw.conf.power_level != power) {
|
|
|
|
changed |= IEEE80211_CONF_CHANGE_POWER;
|
2012-09-28 18:29:02 +00:00
|
|
|
+ local->hw.cur_power_level = power;
|
2011-07-26 20:53:40 +00:00
|
|
|
local->hw.conf.power_level = power;
|
|
|
|
}
|
|
|
|
|