MT7925E PCIe failed to get patch semaphore on Raspberry Pi 5 — needs pmctrl fix from MT7921

MT7925E PCIe failed to get patch semaphore on Raspberry Pi 5 — needs pmctrl fix from MT7921

Hardware:

  • Raspberry Pi 5 4GB
  • ZDE ZP590A M.2 E-Key PCIe HAT
  • MediaTek MT7925E WiFi 7 card (PCI_ID=14C3:7925)
  • OpenWrt SNAPSHOT r33473-7ba45de827, kernel 6.12.74

Problem:
The MT7925E is detected and the driver binds (DRIVER=mt7925e) but fails
during firmware initialization with repeated semaphore timeouts:

mt7925e 0001:01:00.0: Message 00000010 (seq N) timeout
mt7925e 0001:01:00.0: Failed to get patch semaphore
mt7925e 0001:01:00.0: hardware init failed

What was tried (all failed):

  • CMA increased to 256MB via dtoverlay=cma,cma-size=256MB
  • Custom DMA overlay for RPi5 PCIe controller
  • PCIe Gen 1, 2, 3 — no difference
  • ASPM disable via setpci CAP_EXP+10.w=0002
  • PCIe device remove/rescan at boot via rc.local
  • Updated firmware to latest linux-firmware git

Confirmed working:

  • PCI_ID=14C3:7925 detected at 0001:01:00.0
  • DRIVER=mt7925e binds successfully
  • ASIC revision 79250000 reads correctly
  • Firmware files present and updated

Root cause (suspected):
mt7925e_probe() does not call a power control reset before attempting
firmware communication. The device is left in ASPM low-power state after
reboot and cannot respond to the semaphore request.

The identical issue was fixed for MT7921 by adding mt7921e_mcu_drv_pmctrl()
early in mt7921e_probe(). The equivalent fix for mt7925e_probe() in
mt7925/pcie.c has not been applied.

The MT7925E works on Radxa ROCK 5 ITX+ with OpenWrt SNAPSHOT confirming
the card and driver are functional — this is RPi5 PCIe specific.

Request:
Backport the pmctrl reset fix from MT7921 to MT7925 for OpenWrt kernel 6.12.

Or even better

https://github.com/openwrt/openwrt/pulls

Thanks. I've opened the request to Github: https://github.com/openwrt/openwrt/issues/22554