diff --git a/drivers/net/wireless/ath9k/beacon.c b/drivers/net/wireless/ath9k/beacon.c
index 390d5109e826702244d53e2405d53efe40a72400..18bda362d3ab11928e5bd64f3ae2777042c37200 100644
--- a/drivers/net/wireless/ath9k/beacon.c
+++ b/drivers/net/wireless/ath9k/beacon.c
@@ -790,8 +790,6 @@ void ath_beacon_config(struct ath_softc *sc, int if_id)
 		u64 tsf;
 		u32 tsftu;
 		ath9k_hw_set_interrupts(ah, 0);
-		if (nexttbtt == intval)
-			intval |= ATH9K_BEACON_RESET_TSF;
 		if (sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC) {
 			/*
 			 * Pull nexttbtt forward to reflect the current
@@ -825,6 +823,9 @@ void ath_beacon_config(struct ath_softc *sc, int if_id)
 				sc->imask |= ATH9K_INT_SWBA;
 			ath_beaconq_config(sc);
 		} else if (sc->sc_ah->opmode == NL80211_IFTYPE_AP) {
+			if (nexttbtt == intval)
+				intval |= ATH9K_BEACON_RESET_TSF;
+
 			/*
 			 * In AP mode we enable the beacon timers and
 			 * SWBA interrupts to prepare beacon frames.