From: Sean Wang <sean.wang@xxxxxxxxxx> Hi nbd, We've worked diligently to prepare the driver for the upcoming MLO-enabled firmware integration in the 6.11 kernel. We are posting v2 to further enhance and refine the v1 patchset. We hope these improvements can be included in the mt76 pull request for the merge window. These patches are rebased on commit "74861fbe2d25" (wifi: mt76: mt7925: simplify mt7925_mcu_sta_cmd logic by removing fw_offload) in the mt76 tree. If these changes look okay to you, could you please update them in your tree? Thank you very much for your assistance. The details in v2: Address missing parts and improve driver for the firmware for multilink support - Added 8 new patches: - wifi: mt76: mt7925: add link handling in the BSS_CHANGED_ARP_FILTER handler - wifi: mt76: mt7925: add link handling in mt7925_vif_connect_iter - wifi: mt76: mt7925: add link handling in the mt7925_ipv6_addr_change - wifi: mt76: mt7925: update mt7925_mcu_sta_phy_tlv for MLO - wifi: mt76: mt7925: update mt7925_mcu_set_timing for MLO - wifi: mt76: mt7925: update mt7925_mcu_bss_basic_tlv for MLO - wifi: mt76: mt7925: update mt7925_mac_link_bss_add for MLO - wifi: mt76: mt7925: remove the unused mt7925_mcu_set_chan_info - Updated the following v1 patches with changes: - wifi: mt76: mt7925: update mt7925_mcu_bss_mld_tlv for MLO 1. Update group_mld_id with primary link - wifi: mt76: mt7925: update mt7925_mcu_add_bss_info for MLO 1. Set the bss index per link 2. Set the BC entry per link - wifi: mt76: mt7925: add link handling in mt7925_set_key 1. Set bss index per link 2. Fix the issue for setting up the BC key - wifi: mt76: mt7925: add mt7925_[assign, unassign]_vif_chanctx 1. Set the channel context per link - wifi: mt76: mt7925: add link handling to mt7925_change_chanctx 1. Get the channel context per link - wifi: mt76: mt7925: add link handling in mt7925_mac_sta_assoc 1. Set the channel context per link 2. Update mt7925_mac_select_links to properly calculate the sel_links - wifi: mt76: mt7925: update mt76_connac_mcu_uni_add_dev for MLO 1. Set the omac, band index per link - wifi: mt76: mt7925: update mt7925_mcu_sta_update for MLO 1. Set the bss index per link - wifi: mt76: mt7925: add link handling in mt7925_mcu_set_beacon_filter 1. Add link handling in the call path of disabling beacon filter - wifi: mt76: mt7925: update mt7925_mcu_sta_rate_ctrl_tlv for MLO 1. Get the channel context per link - wifi: mt76: mt7925: update mt7925_mac_link_sta_[add, assoc, remove] for MLO 1. Set the channel context per link 2. Simplify the logic to get mconf 3. Get phy idx per link 4. Also update assoc logic to include the above (1), (2), and (3) The details in v1: This patchset introduces comprehensive support for MLO (Multi-Link- Operation) mode on the MT7925 Wi-Fi driver. It includes driver modifications to ensure seamless operation specifically with MLO-enabled firmware environments. The patches included are: 1) Enable the link handling in the existing neccessary functions in the driver for MLO mode. 2) Add MCU TLV handling tailored for the MLO-enabled firmware. 3) Implement .change_vif_links and .change_sta_links callbacks for MLO mode. 4) Register the MLO capability with mac80211 when the driver is operating with the MLO-enabled firmware. These changes maintain compatibility with non-MLO mode and the older firmware versions. Sean Wang (37): wifi: mt76: mt7925: update mt76_connac_mcu_uni_add_dev for MLO wifi: mt76: mt7925: update mt7925_mac_link_sta_[add, assoc, remove] for MLO wifi: mt76: mt7925: set Tx queue parameters according to link id wifi: mt76: mt7925: set mt7925_mcu_sta_key_tlv according to link id wifi: mt76: mt7925: add mt7925_set_link_key wifi: mt76: mt7925: extend mt7925_mcu_uni_roc_event wifi: mt76: mt7925: add mt7925_change_vif_links wifi: mt76: mt7925: add mt7925_change_sta_links wifi: mt76: mt7925: add link handling in mt7925_mac_sta_add wifi: mt76: mt7925: add link handling in mt7925_mac_sta_remove wifi: mt76: mt7925: add link handling to txwi wifi: mt76: mt7925: add link handling in mt7925_set_key wifi: mt76: mt7925: add link handling to mt7925_change_chanctx wifi: mt76: mt7925: add link handling in the BSS_CHANGED_PS handler wifi: mt76: mt7925: add link handling in mt7925_mcu_set_beacon_filter wifi: mt76: mt7925: add link handling in mt7925_txwi_free wifi: mt76: mt7925: add link handling in mt7925_mac_sta_assoc wifi: mt76: mt7925: add link handling in mt7925_sta_set_decap_offload wifi: mt76: mt7925: add link handling in mt7925_vif_connect_iter wifi: mt76: mt7925: add link handling in the BSS_CHANGED_ARP_FILTER handler wifi: mt76: mt7925: add link handling in the mt7925_ipv6_addr_change wifi: mt76: mt7925: update rate index according to link id wifi: mt76: mt7925: report link information in rx status wifi: mt76: add def_wcid to struct mt76_wcid wifi: mt76: mt7925: add mt7925_[assign,unassign]_vif_chanctx wifi: mt76: mt7925: update mt7925_mcu_sta_mld_tlv for MLO wifi: mt76: mt7925: update mt7925_mcu_bss_mld_tlv for MLO wifi: mt76: mt7925: update mt7925_mcu_add_bss_info for MLO wifi: mt76: mt7925: update mt7925_mcu_sta_update for MLO wifi: mt76: mt7925: add mt7925_mcu_sta_eht_mld_tlv for MLO wifi: mt76: mt7925: update mt7925_mcu_sta_rate_ctrl_tlv for MLO wifi: mt76: mt7925: update mt7925_mcu_sta_phy_tlv for MLO wifi: mt76: mt7925: update mt7925_mcu_set_timing for MLO wifi: mt76: mt7925: update mt7925_mcu_bss_basic_tlv for MLO wifi: mt76: mt7925: update mt7925_mac_link_bss_add for MLO wifi: mt76: mt7925: remove the unused mt7925_mcu_set_chan_info wifi: mt76: mt7925: enabling MLO when the firmware supports it drivers/net/wireless/mediatek/mt76/mac80211.c | 5 + drivers/net/wireless/mediatek/mt76/mt76.h | 7 + .../wireless/mediatek/mt76/mt76_connac_mcu.c | 6 +- .../wireless/mediatek/mt76/mt76_connac_mcu.h | 11 + .../net/wireless/mediatek/mt76/mt7925/init.c | 6 + .../net/wireless/mediatek/mt76/mt7925/mac.c | 80 +- .../net/wireless/mediatek/mt76/mt7925/main.c | 730 ++++++++++++++++-- .../net/wireless/mediatek/mt76/mt7925/mcu.c | 538 +++++++++---- .../net/wireless/mediatek/mt76/mt7925/mcu.h | 42 +- .../wireless/mediatek/mt76/mt7925/mt7925.h | 16 +- drivers/net/wireless/mediatek/mt76/mt792x.h | 26 + .../net/wireless/mediatek/mt76/mt792x_core.c | 49 +- 12 files changed, 1249 insertions(+), 267 deletions(-) -- 2.25.1