{
        struct ath_softc *sc = hw->priv;
        struct ath_common *common = ath9k_hw_common(sc->sc_ah);
+       struct cfg80211_chan_def *chandef = &sc->cur_chan->chandef;
+       struct ieee80211_channel *chan = chandef->chan;
+       int pos = chan->hw_value;
        set_bit(ATH_OP_SCANNING, &common->op_flags);
+
+       /* Reset current survey */
+       if (!sc->cur_chan->offchannel) {
+               if (sc->cur_survey != &sc->survey[pos]) {
+                       if (sc->cur_survey)
+                               sc->cur_survey->filled &= ~SURVEY_INFO_IN_USE;
+                       sc->cur_survey = &sc->survey[pos];
+               }
+
+               memset(sc->cur_survey, 0, sizeof(struct survey_info));
+               sc->cur_survey->filled |= SURVEY_INFO_IN_USE;
+       }
 }
 
 static void ath9k_sw_scan_complete(struct ieee80211_hw *hw,