[PATCH 00/18] wifi: mt76: mt7925: add MT7927 (Filogic 380) support

Javier Tia floss at jetm.me
Fri Mar 6 16:33:19 PST 2026


This series adds support for the MediaTek MT7927 (Filogic 380) combo
WiFi 7 + BT 5.4 module to the mt7925 driver. The MT7927 uses PCI ID
14c3:7927 (some hardware reports 14c3:6639) and shares the mt7925
firmware interface but requires different DMA ring layout, IRQ mapping,
chip initialization, and power management handling.

Tested hardware:
- ASUS ROG Crosshair X870E Hero (BT 0489:e13a, WiFi 14c3:6639)
- ASUS ProArt X870E-Creator WiFi (BT 0489:e13a / 13d3:3588, WiFi 14c3:6639)
- ASUS ROG Strix X870E-E (BT 0489:e13a, WiFi 14c3:7927)
- Gigabyte X870E Aorus Master X3D (BT 0489:e10f, WiFi 14c3:7927)
- Gigabyte Z790 AORUS MASTER X (BT 0489:e10f, WiFi 14c3:7927)
- Lenovo Legion Pro 7 16ARX9 (BT 0489:e0fa, WiFi 14c3:7927)
- TP-Link Archer TBE550E PCIe (BT 0489:e116, WiFi 14c3:7927)
- EDUP EP-MT7927BE M.2 card (WiFi 14c3:7927)
- Foxconn/Azurewave M.2 modules (WiFi 14c3:6639)
- AMD RZ738 reference design (WiFi 14c3:0738)

Tested on Arch Linux, CachyOS, EndeavourOS, Fedora (Bazzite), NixOS,
openSUSE Tumbleweed, and Ubuntu across kernels 6.13-6.19.

What works:
- WiFi 7 with EHT 320MHz on 2.4/5/6 GHz bands
- 320MHz data path verified at 841 Mbps (iperf3 -t30 -P8)
- PCIe initialization with CBTOP remap and MT7927-specific DMA layout
- Runtime power management and suspend/resume (S3)
- DBDC (dual-band concurrent) mode
- Explicit band_idx assignment for stable 5GHz/6GHz operation
- ASPM disabled for MT7927 to prevent throughput collapse

Known limitations (planned as follow-up series):
- MLO (Multi-Link Operation): tested working on 5GHz+2.4GHz STR
  (776 Mbps) but requires additional patches for link lifetime
  and error handling. Sean Wang's series [1] addresses these;
  MLO support will be submitted as a follow-up on top of that.

[1] https://lore.kernel.org/linux-wireless/20260306232238.2039675-1-sean.wang@kernel.org/
- TX retransmissions: elevated retry rate on all bands, firmware-side
  rate adaptation issue not addressable in the driver.

Patches 1-11 bring up the basic driver (chip ID, firmware, DMA, init,
power management, 320MHz MCS, mac_reset guard, IRQ map, probe fix).
Patch 12 advertises EHT 320MHz capabilities, guarded by is_mt7927().
Patches 13-14 fix DMASHDL PM wake and disable ASPM.
Patch 15 adds 320MHz bandwidth handling in RXV/TXS status reporting.
Patch 16 fixes stale pointer comparisons in change_vif_links.
Patch 17 assigns explicit band_idx for stable 5GHz/6GHz operation.
Patch 18 adds the missing 320MHz case in bss_rlm_tlv() so firmware
receives the correct bandwidth when associated to a 320MHz BSS.

The WiFi firmware ships as part of the linux-firmware package
(mediatek/mt6639/ directory - the firmware uses the mobile SoC codename).

To: linux-wireless at vger.kernel.org
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: Deren Wu <deren.wu at mediatek.com>
To: Ming Yen Hsieh <mingyen.hsieh at mediatek.com>
Cc: linux-kernel at vger.kernel.org
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-mediatek at lists.infradead.org
Tested-by: Marcin FM <marcin at lgic.pl>
Tested-by: Cristian-Florin Radoi <radoi.chris at gmail.com>
Tested-by: George Salukvadze <giosal90 at gmail.com>
Tested-by: Evgeny Kapusta <3193631 at gmail.com>
Tested-by: Samu Toljamo <samu.toljamo at gmail.com>
Tested-by: Ariel Rosenfeld <ariel.rosenfeld.750 at gmail.com>
Tested-by: Chapuis Dario <chapuisdario4 at gmail.com>
Tested-by: Thibaut François <tibo at humeurlibre.fr>
Tested-by: 张旭涵 <Loong.0x00 at gmail.com>

Signed-off-by: Javier Tia <floss at jetm.me>
---
Javier Tia (18):
      wifi: mt76: mt7925: add MT7927 chip ID helpers
      wifi: mt76: mt7925: add MT7927 firmware paths and PCI device IDs
      wifi: mt76: mt7925: add MT7927 CBTOP remap and chip initialization
      wifi: mt76: mt7925: add MT7927 DMA ring layout, IRQ map, and prefetch
      wifi: mt76: mt7925: skip CLR_OWN in mt7925e_mcu_init for MT7927
      wifi: mt76: mt7925: add MT7927 power management, DBDC, and CNM fixes
      wifi: mt76: mt7925: use irq_map fields instead of MT_INT_RX_DONE_ALL
      wifi: mt76: mt7925: guard mac_reset against MT7927 DMA destruction
      wifi: mt76: mt7925: populate EHT 320MHz MCS map in sta_rec
      wifi: mt76: mt7925: enable MT7927 runtime power management
      wifi: mt76: mt7925: fix uninitialized is_mt7927_hw in probe
      wifi: mt76: mt7925: advertise EHT 320MHz capabilities for 6GHz band
      wifi: mt76: mt7925: restore FW_DWLD_BYPASS_DMASHDL in MT7927 PM wake path
      wifi: mt76: mt7925: disable ASPM for MT7927 to fix throughput collapse
      wifi: mt76: mt7925: handle 320MHz bandwidth in RXV and TXS
      wifi: mt76: mt7925: fix stale pointer comparisons in change_vif_links
      wifi: mt76: mt7925: fix MT7927 band_idx for stable 5GHz/6GHz operation
      wifi: mt76: mt7925: add 320MHz bandwidth to bss_rlm_tlv

 drivers/net/wireless/mediatek/mt76/mt76_connac.h   |   8 +-
 drivers/net/wireless/mediatek/mt76/mt7925/init.c   |  12 +
 drivers/net/wireless/mediatek/mt76/mt7925/mac.c    |   9 +
 drivers/net/wireless/mediatek/mt76/mt7925/main.c   |  72 +++++-
 drivers/net/wireless/mediatek/mt76/mt7925/mcu.c    |  59 ++++-
 drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h |  12 +
 drivers/net/wireless/mediatek/mt76/mt7925/pci.c    | 248 ++++++++++++++++++++-
 .../net/wireless/mediatek/mt76/mt7925/pci_mac.c    |  13 +-
 .../net/wireless/mediatek/mt76/mt7925/pci_mcu.c    |  19 +-
 drivers/net/wireless/mediatek/mt76/mt792x.h        |   6 +
 drivers/net/wireless/mediatek/mt76/mt792x_dma.c    |  26 ++-
 drivers/net/wireless/mediatek/mt76/mt792x_regs.h   |  30 +++
 12 files changed, 479 insertions(+), 35 deletions(-)
---
base-commit: 97492c019da4b62df83255e968b23b81c0315530
change-id: 20260305-mt7927-wifi-support-02f9738a3962

Best regards,
-- 
Javier Tia <floss at jetm.me>




More information about the Linux-mediatek mailing list