mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
wifi: rtw89: mcc: update entire plan when courtesy config changes
MCC has a courtesy mechanism which allows one role to use another's duration in a given cycle. Courtesy mechanism will be enabled when one role has a not perfect duration. Otherwise, not. When MCC updates, duration of each role will be re-calculated. And then, the new courtesy config might be different from the old one. However, to change courtesy config, the entire MCC plan requires to be renewed when MCC updates. 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-10-pkshih@realtek.com
This commit is contained in:
parent
b8a2f9e0fa
commit
584a423e75
|
|
@ -2142,6 +2142,7 @@ static int rtw89_mcc_update(struct rtw89_dev *rtwdev)
|
|||
struct rtw89_mcc_info *mcc = &rtwdev->mcc;
|
||||
struct rtw89_mcc_config *config = &mcc->config;
|
||||
struct rtw89_mcc_config old_cfg = *config;
|
||||
bool courtesy_changed;
|
||||
bool sync_changed;
|
||||
int ret;
|
||||
|
||||
|
|
@ -2154,8 +2155,15 @@ static int rtw89_mcc_update(struct rtw89_dev *rtwdev)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (memcmp(&old_cfg.pattern.courtesy, &config->pattern.courtesy,
|
||||
sizeof(old_cfg.pattern.courtesy)) == 0)
|
||||
courtesy_changed = false;
|
||||
else
|
||||
courtesy_changed = true;
|
||||
|
||||
if (old_cfg.pattern.plan != RTW89_MCC_PLAN_NO_BT ||
|
||||
config->pattern.plan != RTW89_MCC_PLAN_NO_BT) {
|
||||
config->pattern.plan != RTW89_MCC_PLAN_NO_BT ||
|
||||
courtesy_changed) {
|
||||
if (rtw89_concurrent_via_mrc(rtwdev))
|
||||
ret = __mrc_fw_start(rtwdev, true);
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user