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.