if (rtwvif_link->net_type != RTW89_NET_TYPE_AP_MODE || rtwvif_link == rtwvif_src)
                return;
 
+       if (rtwvif_link->rand_tsf_done)
+               goto out;
+
        /* adjust offset randomly to avoid beacon conflict */
        offset = offset - offset / 4 + get_random_u32() % (offset / 2);
        rtw89_mac_port_tsf_sync(rtwdev, rtwvif_link, rtwvif_src,
                                (*n_offset) * offset);
 
+       rtwvif_link->rand_tsf_done = true;
+
+out:
        (*n_offset)++;
 }
 
 void rtw89_mac_stop_ap(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link)
 {
        rtw89_mac_port_cfg_func_sw(rtwdev, rtwvif_link);
+
+       rtwvif_link->rand_tsf_done = false;
 }
 
 int rtw89_mac_add_vif(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link)
 
        rtwvif_link->chanctx_assigned = false;
        rtwvif_link->chanctx_idx = RTW89_CHANCTX_0;
        rtwvif_link->reg_6ghz_power = RTW89_REG_6GHZ_POWER_DFLT;
+       rtwvif_link->rand_tsf_done = false;
 
        rcu_read_lock();
 
 
                rtw89_core_release_bit_map(rtwdev->hw_port, rtwvif_link->port);
                rtwvif_link->net_type = RTW89_NET_TYPE_NO_LINK;
                rtwvif_link->trigger = false;
+               rtwvif_link->rand_tsf_done = false;
        }
 }