wifi: rtw89: mcc: handle the case where NoA start time has passed
authorZong-Zhe Yang <kevin_yang@realtek.com>
Tue, 22 Apr 2025 01:46:16 +0000 (09:46 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Mon, 28 Apr 2025 06:38:39 +0000 (14:38 +0800)
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 <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250422014620.18421-9-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/chan.c

index b5fb5669eefea6180f7783327e7468d0038f33f8..530f8c52efe8c45fe41b0a4a629140568da409f3 100644 (file)
@@ -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;