[PATCH 0/2] wifi: mt76: fix TDLS direct-link on MediaTek MT7925
ElXreno
elxreno at gmail.com
Sat May 2 18:38:29 PDT 2026
This series fixes two TDLS-related issues on the MediaTek MT7925
(Connac3) Wi-Fi 6E chip, observed reproducibly with Samsung phones
and other peers that auto-initiate TDLS direct links.
Patch 1 works around a TDLS direct-link issue on MT7925: QoS Data
frames whose destination WCID is a TDLS peer are silently dropped
after submission to firmware via the HW_80211_ENCAP TX path. mt76
advertises WIPHY_FLAG_SUPPORTS_TDLS via the shared
mt76_register_phy_helper(), but does not provide TDLS-aware
firmware-facing peer setup -- no CONNECTION_TDLS constant in
mt76_connac_mcu.h, no STA_REC_TDLS TLV, no TDLS bit in
mt76_wcid_flags, no TDLS-specific handling in
mt7925_mac_write_txwi_8023(); the proprietary out-of-tree MediaTek
driver carries an explicit cfg80211_tdls.c with no in-tree
equivalent. Whether the underlying gap is in the firmware HW_ENCAP
path or in mt76's missing TDLS-aware setup is unclear from the
kernel side; the software-encap path sidesteps it either way. This
patch stops advertising SUPPORTS_TX_ENCAP_OFFLOAD and
SUPPORTS_RX_DECAP_OFFLOAD in mt792x_init_wiphy(); mac80211 then
takes the software 802.11 encap path, which submits already-formed
802.11 frames via a different firmware path that handles all WCIDs
correctly. Verified on mt7925e at 5 GHz HE 80 MHz and 2.4 GHz
802.11n; TDLS direct link sustains ~750 Mbit/s and ~130 Mbit/s
respectively. The disable is applied to the shared
mt792x_init_wiphy() and so also covers the Connac2 family
(mt7921/22/20/02), which uses the same firmware HW_ENCAP path; if
Connac2 is later confirmed unaffected, the disable can be narrowed
with is_mt7925().
Patch 2 fixes a regression introduced by the MLO refactor in
commit 3878b4333602 ("wifi: mt76: mt7925: update
mt7925_mac_link_sta_[add, assoc, remove] for MLO"): the cleanup
loop in mt7925_mac_sta_remove_links() unconditionally calls
mt7925_mcu_add_bss_info(..., enable=false) for every link of the
station being removed, including TDLS peers on a STATION vif which
share the AP's bss_conf -- wiping the AP-side rate-control context
on every TDLS teardown and collapsing rx bitrate to 6 Mbit/s for
tens of seconds.
---
To: Felix Fietkau <nbd at nbd.name>
To: Lorenzo Bianconi <lorenzo at kernel.org>
To: Ryder Lee <ryder.lee at mediatek.com>
To: Shayne Chen <shayne.chen at mediatek.com>
To: Sean Wang <sean.wang at mediatek.com>
To: Matthias Brugger <matthias.bgg at gmail.com>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
To: Soul Huang <Soul.Huang at mediatek.com>
To: Ming Yen Hsieh <mingyen.hsieh at mediatek.com>
To: Deren Wu <deren.wu at mediatek.com>
Cc: linux-wireless at vger.kernel.org
Cc: linux-kernel at vger.kernel.org
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-mediatek at lists.infradead.org
base-commit: 7baf5857e15d722776898510a10546d6b2f18645
---
ElXreno (2):
wifi: mt76: mt792x: disable HW TX/RX encap offload to fix TDLS direct-link
wifi: mt76: mt7925: don't disable AP BSS when removing TDLS peer
drivers/net/wireless/mediatek/mt76/mt7925/main.c | 10 ++++++++++
drivers/net/wireless/mediatek/mt76/mt792x_core.c | 10 ++++++++--
2 files changed, 18 insertions(+), 2 deletions(-)
---
base-commit: 7baf5857e15d722776898510a10546d6b2f18645
change-id: 20260503-mt7925-tdls-fixes-1d1397420900
Best regards,
--
ElXreno <elxreno at gmail.com>
More information about the linux-arm-kernel
mailing list