Skip to content

Enabling MT7925 MLO Mode Support

[email protected] linux-mediatek linux-wireless 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest37 patches 1 replyIn review
  2. v129 patches 0 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/37wifi: mt76: mt7925: update mt76_connac_mcu_uni_add_dev for MLOdrivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c+4 -21 reply
2/37wifi: mt76: mt7925: update mt7925_mac_link_sta_[add, assoc, remove] for MLOdrivers/net/wireless/mediatek/mt76/mt7925/main.c+20 -120 replies
3/37wifi: mt76: mt7925: set Tx queue parameters according to link iddrivers/net/wireless/mediatek/mt76/mt7925/main.c+2 -10 replies
4/37wifi: mt76: mt7925: set mt7925_mcu_sta_key_tlv according to link iddrivers/net/wireless/mediatek/mt76/mt76.h drivers/net/wireless/mediatek/mt76/mt7925/main.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +1 more+24 -40 replies
5/37wifi: mt76: mt7925: add mt7925_set_link_keydrivers/net/wireless/mediatek/mt76/mt7925/main.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h+61 -370 replies
6/37wifi: mt76: mt7925: extend mt7925_mcu_uni_roc_eventdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h+27 -50 replies
7/37wifi: mt76: mt7925: add mt7925_change_vif_linksdrivers/net/wireless/mediatek/mt76/mt7925/main.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.h +3 more+275 -260 replies
8/37wifi: mt76: mt7925: add mt7925_change_sta_linksdrivers/net/wireless/mediatek/mt76/mt7925/main.c drivers/net/wireless/mediatek/mt76/mt792x.h+145 -40 replies
9/37wifi: mt76: mt7925: add link handling in mt7925_mac_sta_adddrivers/net/wireless/mediatek/mt76/mt7925/main.c+11 -10 replies
10/37wifi: mt76: mt7925: add link handling in mt7925_mac_sta_removedrivers/net/wireless/mediatek/mt76/mt7925/main.c+7 -10 replies
11/37wifi: mt76: mt7925: add link handling to txwidrivers/net/wireless/mediatek/mt76/mt7925/mac.c drivers/net/wireless/mediatek/mt76/mt792x_core.c+33 -50 replies
12/37wifi: mt76: mt7925: add link handling in mt7925_set_keydrivers/net/wireless/mediatek/mt76/mt7925/main.c+17 -10 replies
13/37wifi: mt76: mt7925: add link handling to mt7925_change_chanctxdrivers/net/wireless/mediatek/mt76/mt7925/main.c+20 -20 replies
14/37wifi: mt76: mt7925: add link handling in the BSS_CHANGED_PS handlerdrivers/net/wireless/mediatek/mt76/mt7925/main.c+12 -20 replies
15/37wifi: mt76: mt7925: add link handling in mt7925_mcu_set_beacon_filterdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c+17 -60 replies
16/37wifi: mt76: mt7925: add link handling in mt7925_txwi_freedrivers/net/wireless/mediatek/mt76/mt7925/mac.c drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h+40 -160 replies
17/37wifi: mt76: mt7925: add link handling in mt7925_mac_sta_assocdrivers/net/wireless/mediatek/mt76/mt7925/main.c drivers/net/wireless/mediatek/mt76/mt792x.h+103 -20 replies
18/37wifi: mt76: mt7925: add link handling in mt7925_sta_set_decap_offloaddrivers/net/wireless/mediatek/mt76/mt7925/main.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h+36 -120 replies
19/37wifi: mt76: mt7925: add link handling in mt7925_vif_connect_iterdrivers/net/wireless/mediatek/mt76/mt7925/mac.c+11 -30 replies
20/37wifi: mt76: mt7925: add link handling in the BSS_CHANGED_ARP_FILTER handlerdrivers/net/wireless/mediatek/mt76/mt7925/main.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.h+14 -120 replies
21/37wifi: mt76: mt7925: add link handling in the mt7925_ipv6_addr_changedrivers/net/wireless/mediatek/mt76/mt7925/main.c+23 -60 replies
22/37wifi: mt76: mt7925: update rate index according to link iddrivers/net/wireless/mediatek/mt76/mt7925/main.c+7 -40 replies
23/37wifi: mt76: mt7925: report link information in rx statusdrivers/net/wireless/mediatek/mt76/mac80211.c drivers/net/wireless/mediatek/mt76/mt76.h drivers/net/wireless/mediatek/mt76/mt7925/main.c+8 -00 replies
24/37wifi: mt76: add def_wcid to struct mt76_wciddrivers/net/wireless/mediatek/mt76/mt76.h drivers/net/wireless/mediatek/mt76/mt7925/main.c+7 -00 replies
25/37wifi: mt76: mt7925: add mt7925_[assign,unassign]_vif_chanctxdrivers/net/wireless/mediatek/mt76/mt7925/main.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.h+82 -110 replies
26/37wifi: mt76: mt7925: update mt7925_mcu_sta_mld_tlv for MLOdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c+22 -70 replies
27/37wifi: mt76: mt7925: update mt7925_mcu_bss_mld_tlv for MLOdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.h+17 -100 replies
28/37wifi: mt76: mt7925: update mt7925_mcu_add_bss_info for MLOdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c+8 -30 replies
29/37wifi: mt76: mt7925: update mt7925_mcu_sta_update for MLOdrivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h drivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.h+78 -20 replies
30/37wifi: mt76: mt7925: add mt7925_mcu_sta_eht_mld_tlv for MLOdrivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h drivers/net/wireless/mediatek/mt76/mt7925/mcu.c drivers/net/wireless/mediatek/mt76/mt7925/mcu.h+53 -10 replies
31/37wifi: mt76: mt7925: update mt7925_mcu_sta_rate_ctrl_tlv for MLOdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c+10 -20 replies
32/37wifi: mt76: mt7925: update mt7925_mcu_sta_phy_tlv for MLOdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c+2 -10 replies
33/37wifi: mt76: mt7925: update mt7925_mcu_set_timing for MLOdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c+2 -20 replies
34/37wifi: mt76: mt7925: update mt7925_mcu_bss_basic_tlv for MLOdrivers/net/wireless/mediatek/mt76/mt7925/mcu.c+1 -00 replies
35/37wifi: mt76: mt7925: update mt7925_mac_link_bss_add for MLOdrivers/net/wireless/mediatek/mt76/mt7925/main.c+3 -20 replies
36/37wifi: mt76: mt7925: remove the unused mt7925_mcu_set_chan_infodrivers/net/wireless/mediatek/mt76/mt7925/mcu.c+0 -740 replies
37/37wifi: mt76: mt7925: enabling MLO when the firmware supports itdrivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h drivers/net/wireless/mediatek/mt76/mt7925/init.c drivers/net/wireless/mediatek/mt76/mt7925/main.c +3 more+59 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 00/37] Enabling MT7925 MLO Mode Support

From: Sean Wang <[email protected]>

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(-)
Signature · 1 line
2.25.1