--- 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;
+@@ -1372,6 +1372,7 @@ struct ieee80211_hw {
+ u8 max_tx_aggregation_subframes;
+ u8 offchannel_tx_hw_queue;
+ u8 radiotap_mcs_details;
++ s8 cur_power_level;
+ netdev_features_t netdev_features;
+ };
- u16 listen_interval;
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1969,7 +1969,7 @@ static int ieee80211_get_tx_power(struct
struct ieee80211_local *local = wiphy_priv(wiphy);
- *dbm = local->hw.conf.power_level;
-+ *dbm = local->hw.conf.cur_power_level;
++ *dbm = local->hw.cur_power_level;
return 0;
}
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;
}
return -EINVAL;
}
-+ conf->cur_power_level = sc->curtxpow / 2;
++ hw->cur_power_level = sc->curtxpow / 2;
+
/*
* The most recent snapshot of channel->noisefloor for the old
sc->config.txpowlimit = 2 * conf->power_level;
ath9k_cmn_update_txpow(ah, sc->curtxpow,
sc->config.txpowlimit, &sc->curtxpow);
-+ conf->cur_power_level = sc->curtxpow / 2;
++ hw->cur_power_level = sc->curtxpow / 2;
}
mutex_unlock(&sc->mutex);
return 0;
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
-@@ -3718,7 +3718,7 @@ void ieee80211_send_bar(struct ieee80211
+@@ -3719,7 +3719,7 @@ void ieee80211_send_bar(struct ieee80211
* (deprecated; this will be removed once drivers get updated to use
* rate_idx_mask)
* @rate_idx_mask: user-requested (legacy) rate mask
* @bss: whether this frame is sent out in AP or IBSS mode
*/
struct ieee80211_tx_rate_control {
-@@ -3730,7 +3730,7 @@ struct ieee80211_tx_rate_control {
+@@ -3731,7 +3731,7 @@ struct ieee80211_tx_rate_control {
bool rts, short_preamble;
u8 max_rate_idx;
u32 rate_idx_mask;