This is second patchset to prepare more materials for MCC. It includes group 5 patch below that is to calculate timeslot assignment (or named pattern) for various combinations, such as use cases with/without BT devices connected. Since the detail calculation of timeslot is complicated, we split them into several patches. Each of them calculates timeslot from 'coarse-grained' to 'fine-grained'. Then, use H2C command to notify firmware to start MCC work that follows these timeslot patterns to switch channels with protocols of 802.11 PS and NoA. v2: - fix unfined '__umoddi3' issue found by 0-DAY CI Kernel Test Service <<< Below commit message is kept as first patchset for reference >>> TDMA-based MCC (STA+P2P) is a kind of multiple interfaces concurrence. Basically, driver is to calculate timeslot pattern and firmware follows the pattern to switch channels. Since BT-coexistence is also a TDMA-based mechanism, also consider BT timeslot into pattern if BT devices present. To easier to review these 20+ patches, I summary basic purpose of these patches below by group, and submit them by small patchset one by one. Group 1. [DONE] get BT timeslot from coex mechanism Group 2. [DONE] adjust some stuff related to driver channel context Group 3. [DONE] P2P NoA infrastructure to add the IE to beacon when playing GO Group 4. [DONE] adjust driver to support 2 channel context Group 5. [CURRENT] calculate timeslot patterns and trigger firmware to switch channels followed the patterns Group 6. disable some dynamic tracking mechanism of RF calibration when MCC is running. Group 7. monitor states and adjust timeslot patterns. For example, if BT device leaves, we can reassign the slot to WiFi. Group 8. Remain-on-channel and hardware scan are related to channel context, so need some treatments to work with MCC properly. Group 9. Finally, we declare 8852C to support MCC Zong-Zhe Yang (6): wifi: rtw89: mcc: initialize start flow wifi: rtw89: mcc: fill fundamental configurations wifi: rtw89: mcc: consider and determine BT duration wifi: rtw89: mcc: decide pattern and calculate parameters wifi: rtw89: fix typo of rtw89_fw_h2c_mcc_macid_bitmap() wifi: rtw89: mcc: trigger FW to start/stop MCC drivers/net/wireless/realtek/rtw89/chan.c | 1155 +++++++++++++++++++++ drivers/net/wireless/realtek/rtw89/chan.h | 20 + drivers/net/wireless/realtek/rtw89/core.c | 4 + drivers/net/wireless/realtek/rtw89/core.h | 87 ++ drivers/net/wireless/realtek/rtw89/fw.c | 2 +- drivers/net/wireless/realtek/rtw89/fw.h | 2 +- 6 files changed, 1268 insertions(+), 2 deletions(-) -- 2.25.1