--- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c @@ -1266,6 +1266,8 @@ int ath9k_config(struct ieee80211_hw *hw return -EINVAL; } + hw->cur_power_level = sc->curtxpow / 2; + /* * The most recent snapshot of channel->noisefloor for the old * channel is only available after the hardware reset. Copy it to @@ -1302,6 +1304,7 @@ int ath9k_config(struct ieee80211_hw *hw sc->config.txpowlimit = 2 * conf->power_level; ath9k_cmn_update_txpow(ah, sc->curtxpow, sc->config.txpowlimit, &sc->curtxpow); + hw->cur_power_level = sc->curtxpow / 2; } mutex_unlock(&sc->mutex);