From: Zong-Zhe Yang Date: Tue, 22 Apr 2025 01:46:16 +0000 (+0800) Subject: wifi: rtw89: mcc: handle the case where NoA start time has passed X-Git-Tag: v6.16-rc1~132^2~46^2~7^2~51 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=b8a2f9e0fab913751fbba1d452850d5cbdc633cf;p=linux-block.git wifi: rtw89: mcc: handle the case where NoA start time has passed MCC will limit the time a role can use in a schedule according to the periodic NoA. Original logic didn't consider the case where NoA start time has passed. It might lead to inaccurate result. So, tweak it. Signed-off-by: Zong-Zhe Yang Signed-off-by: Ping-Ke Shih Link: https://patch.msgid.link/20250422014620.18421-9-pkshih@realtek.com --- diff --git a/drivers/net/wireless/realtek/rtw89/chan.c b/drivers/net/wireless/realtek/rtw89/chan.c index b5fb5669eefe..530f8c52efe8 100644 --- a/drivers/net/wireless/realtek/rtw89/chan.c +++ b/drivers/net/wireless/realtek/rtw89/chan.c @@ -787,6 +787,9 @@ fill: } tsf_lmt = (tsf & GENMASK_ULL(63, 32)) | start_time; + if (tsf_lmt < tsf) + tsf_lmt += roundup_u64(tsf - tsf_lmt, interval); + max_toa_us = rtw89_mcc_get_tbtt_ofst(rtwdev, mcc_role, tsf_lmt); max_dur_us = interval - duration; max_tob_us = max_dur_us - max_toa_us;