--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -326,8 +326,12 @@ static int ath_reset_internal(struct ath
 	    sc->cur_chan->offchannel)
 		ath9k_mci_set_txpower(sc, true, false);
 
-	if (!ath_complete_reset(sc, true))
+	if (!ath_complete_reset(sc, true)) {
 		r = -EIO;
+		goto out;
+	}
+
+	sc->hw->cur_power_level = sc->curtxpow / 2;
 
 out:
 	spin_unlock_bh(&sc->sc_pcu_lock);
@@ -1470,6 +1474,7 @@ static int ath9k_config(struct ieee80211
 		sc->cur_chan->txpower = 2 * conf->power_level;
 		ath9k_cmn_update_txpow(ah, sc->curtxpow,
 				       sc->cur_chan->txpower, &sc->curtxpow);
+		hw->cur_power_level = sc->curtxpow / 2;
 	}
 
 	mutex_unlock(&sc->mutex);
