When the timer is already running, there is no need to reset the counter,
because the drift will remain the same.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
        else if (val)
                skb = ieee80211_beacon_get(mt76_hw(dev), vif);
 
+       if (!dev->beacon_mask)
+               dev->tbtt_count = 0;
+
        __mt76x02_mac_set_beacon_enable(dev, vif_idx, val, skb);
 
        if (mt76_is_mmio(dev))
 
                               MT_BEACON_TIME_CFG_INTVAL,
                               info->beacon_int << 4);
                dev->beacon_int = info->beacon_int;
-               dev->tbtt_count = 0;
        }
 
        if (changed & BSS_CHANGED_BEACON_ENABLED)