--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -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;
 };
 
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1967,7 +1967,7 @@ static int ieee80211_get_tx_power(struct
 {
 	struct ieee80211_local *local = wiphy_priv(wiphy);
 
-	*dbm = local->hw.conf.power_level;
+	*dbm = local->hw.cur_power_level;
 
 	return 0;
 }
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -165,6 +165,7 @@ int ieee80211_hw_config(struct ieee80211
 
 	if (local->hw.conf.power_level != power) {
 		changed |= IEEE80211_CONF_CHANGE_POWER;
+		local->hw.cur_power_level = power;
 		local->hw.conf.power_level = power;
 	}
 
