@@ -285,8 +285,14 @@
ath9k_hw_set_interrupts(ah, ah->imask);
if (!(sc->sc_flags & (SC_OP_OFFCHANNEL))) {
- if (sc->sc_flags & SC_OP_BEACONS)
- ath_beacon_config(sc, NULL);
+
+ if (sc->sc_flags & SC_OP_BEACONS) {
+ if (channel->flags & IEEE80211_CHAN_RADAR
+ && !(channel->flags & IEEE80211_CHAN_NOL_FREE))
+ ieee80211_queue_delayed_work
+ (sc->hw, &sc->dfs_wait_cac_work, 0);
+ else
+ ath_beacon_config(sc, NULL);
+ }
+
ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, 0);
ath_start_ani(common);
}