int r;
if (sc->sc_flags & SC_OP_INVALID)
-@@ -268,6 +269,21 @@ static int ath_set_channel(struct ath_so
+@@ -268,6 +269,24 @@ static int ath_set_channel(struct ath_so
if (!stopped || !(sc->sc_flags & SC_OP_OFFCHANNEL))
fastcc = false;
+ hchan->channelFlags &= ~CHANNEL_QUARTER;
+ hchan->channelFlags |= CHANNEL_HALF;
+ break;
++ default:
++ hchan->channelFlags &= ~(CHANNEL_HALF | CHANNEL_QUARTER);
++ break;
+ }
+
+ if (oldflags != hchan->channelFlags)
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1724,6 +1724,8 @@ static int ath9k_config(struct ieee80211
+@@ -1727,6 +1727,8 @@ static int ath9k_config(struct ieee80211
return -EINVAL;
}
/*
* The most recent snapshot of channel->noisefloor for the old
* channel is only available after the hardware reset. Copy it to
-@@ -1741,6 +1743,7 @@ static int ath9k_config(struct ieee80211
+@@ -1744,6 +1746,7 @@ static int ath9k_config(struct ieee80211
ath9k_cmn_update_txpow(ah, sc->curtxpow,
sc->config.txpowlimit, &sc->curtxpow);
ath9k_ps_restore(sc);