if (sc->sc_flags & SC_OP_INVALID)
                return -EIO;
 
-       if (hchan->channel != sc->sc_ah->ah_curchan->channel ||
-           hchan->channelFlags != sc->sc_ah->ah_curchan->channelFlags ||
-           (sc->sc_flags & SC_OP_CHAINMASK_UPDATE) ||
-           (sc->sc_flags & SC_OP_FULL_RESET)) {
-               /*
-                * This is only performed if the channel settings have
-                * actually changed.
-                *
-                * To switch channels clear any pending DMA operations;
-                * wait long enough for the RX fifo to drain, reset the
-                * hardware at the new frequency, and then re-enable
-                * the relevant bits of the h/w.
-                */
-               ath9k_hw_set_interrupts(ah, 0);
-               ath_draintxq(sc, false);
-               stopped = ath_stoprecv(sc);
+       /*
+        * This is only performed if the channel settings have
+        * actually changed.
+        *
+        * To switch channels clear any pending DMA operations;
+        * wait long enough for the RX fifo to drain, reset the
+        * hardware at the new frequency, and then re-enable
+        * the relevant bits of the h/w.
+        */
+       ath9k_hw_set_interrupts(ah, 0);
+       ath_draintxq(sc, false);
+       stopped = ath_stoprecv(sc);
 
-               /* XXX: do not flush receive queue here. We don't want
-                * to flush data frames already in queue because of
-                * changing channel. */
+       /* XXX: do not flush receive queue here. We don't want
+        * to flush data frames already in queue because of
+        * changing channel. */
 
-               if (!stopped || (sc->sc_flags & SC_OP_FULL_RESET))
-                       fastcc = false;
+       if (!stopped || (sc->sc_flags & SC_OP_FULL_RESET))
+               fastcc = false;
 
-               DPRINTF(sc, ATH_DBG_CONFIG,
-                       "(%u MHz) -> (%u MHz), chanwidth: %d\n",
-                       sc->sc_ah->ah_curchan->channel,
-                       channel->center_freq, sc->tx_chan_width);
+       DPRINTF(sc, ATH_DBG_CONFIG,
+               "(%u MHz) -> (%u MHz), chanwidth: %d\n",
+               sc->sc_ah->ah_curchan->channel,
+               channel->center_freq, sc->tx_chan_width);
 
-               spin_lock_bh(&sc->sc_resetlock);
+       spin_lock_bh(&sc->sc_resetlock);
 
-               r = ath9k_hw_reset(ah, hchan, fastcc);
-               if (r) {
-                       DPRINTF(sc, ATH_DBG_FATAL,
-                               "Unable to reset channel (%u Mhz) "
-                               "reset status %u\n",
-                               channel->center_freq, r);
-                       spin_unlock_bh(&sc->sc_resetlock);
-                       return r;
-               }
+       r = ath9k_hw_reset(ah, hchan, fastcc);
+       if (r) {
+               DPRINTF(sc, ATH_DBG_FATAL,
+                       "Unable to reset channel (%u Mhz) "
+                       "reset status %u\n",
+                       channel->center_freq, r);
                spin_unlock_bh(&sc->sc_resetlock);
+               return r;
+       }
+       spin_unlock_bh(&sc->sc_resetlock);
 
-               sc->sc_flags &= ~SC_OP_CHAINMASK_UPDATE;
-               sc->sc_flags &= ~SC_OP_FULL_RESET;
-
-               if (ath_startrecv(sc) != 0) {
-                       DPRINTF(sc, ATH_DBG_FATAL,
-                               "Unable to restart recv logic\n");
-                       return -EIO;
-               }
+       sc->sc_flags &= ~SC_OP_CHAINMASK_UPDATE;
+       sc->sc_flags &= ~SC_OP_FULL_RESET;
 
-               ath_cache_conf_rate(sc, &hw->conf);
-               ath_update_txpow(sc);
-               ath9k_hw_set_interrupts(ah, sc->sc_imask);
+       if (ath_startrecv(sc) != 0) {
+               DPRINTF(sc, ATH_DBG_FATAL,
+                       "Unable to restart recv logic\n");
+               return -EIO;
        }
+
+       ath_cache_conf_rate(sc, &hw->conf);
+       ath_update_txpow(sc);
+       ath9k_hw_set_interrupts(ah, sc->sc_imask);
        return 0;
 }