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 <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250422014620.18421-9-pkshih@realtek.com
This commit is contained in:
Zong-Zhe Yang 2025-04-22 09:46:16 +08:00 committed by Ping-Ke Shih
parent 50f9dc17a1
commit b8a2f9e0fa

View File

@ -787,6 +787,9 @@ static void rtw89_mcc_fill_role_limit(struct rtw89_dev *rtwdev,
}
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;