{
struct ath_softc *sc = hw->priv;
struct ath_hw *ah = sc->sc_ah;
-@@ -1616,9 +1616,11 @@ static int ath9k_config(struct ieee80211
+@@ -1623,9 +1623,11 @@ static int ath9k_config(struct ieee80211
- if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
+ if ((changed & IEEE80211_CONF_CHANGE_CHANNEL) || reset_channel) {
struct ieee80211_channel *curchan = hw->conf.channel;
+ struct ath9k_channel *hchan;
int pos = curchan->hw_value;
if (ah->curchan)
old_pos = ah->curchan - &ah->channels[0];
-@@ -1667,7 +1669,23 @@ static int ath9k_config(struct ieee80211
+@@ -1674,7 +1676,23 @@ static int ath9k_config(struct ieee80211
memset(&sc->survey[pos], 0, sizeof(struct survey_info));
}