mt7615e (MT7663, 14c3:7663): Wi-Fi unusable after s2idle resume, only a full reboot recovers; hot unbind hangs the system; ROM patch fails to load on 7.0
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- c, linux
- Domain
- networking, operating-systems
Research direction
Start in mt7615/mcu.c around the patch-load path (search for 'Failed to get patch semaphore') and the suspend/resume hooks in mt7615/pci.c and mt7615/mmio.c, comparing kernel 6.14 vs 7.0 behavior for message timeouts during wiphy_resume. First step: enable mt76 debug logging and reproduce with rtcwake -m freeze -s 25 or systemctl suspend, then trace why Message 000046ed never gets a reply after resume. Done means wiphy_resume returns 0 and the patch loads on 7.0 without reboot — but note the reporter's exact hardware is required to verify, and hot-unbind hangs make this risky to debug blind.
Written by the indexing model from the issue text.
Description
Hardware / software
- Laptop: Acer Aspire A315-24P, BIOS V1.28 (05/20/2026), AMD Ryzen 5 7520U
- Card:
02:00.0 Network controller [0280]: MEDIATEK Corp. Device [14c3:7663], subsystem Lite-On[11ad:3801], drivermt7615e - OS: Linux Mint 22.3 (Ubuntu 24.04 base)
- Kernels tested:
6.14.0-37-genericand7.0.0-38-generic(Ubuntu HWE) - linux-firmware:
20240318.git3b128b60.0ubuntu3.1 - Sleep: only
s2idleis available (/sys/power/mem_sleep=[s2idle]) - The same laptop never had this problem under Windows.
Problem 1: Wi-Fi is broken after resume from s2idle
After any suspend/resume (lid close or systemctl suspend), the link is effectively dead. NetworkManager still reports the connection as up (CONNECTIVITY full), but:
- the first ~5–40 s nothing passes at all (gateway, internet, DNS);
- after that, traffic is intermittent for minutes: ping to the gateway on the same LAN goes from ~2 ms before suspend to 2.5–6.4 s, with packet loss; throughput drops from ~370 Mbit/s to ~0.1 Mbit/s;
- it does not recover on its own (observed for over 4 minutes);
- toggling Wi-Fi off/on or reconnecting in NetworkManager does not help;
- only a full reboot recovers the card.
Kernel log on 7.0.0-38 across one suspend/resume:
[ 148.986833] PM: suspend entry (s2idle)
[ 171.559711] mt7615e 0000:02:00.0: Message 00020007 (seq 13) timeout
[ 192.039578] mt7615e 0000:02:00.0: Message 000046ed (seq 14) timeout
[ 192.042297] ieee80211 phy0: PM: dpm_run_callback(): wiphy_resume [cfg80211] returns -110
[ 192.042364] ieee80211 phy0: PM: failed to resume async: error -110
[ 192.621184] PM: suspend exit
[ 318.503506] mt7615e 0000:02:00.0: Message 000046ed (seq 15) timeout
[ 338.982907] mt7615e 0000:02:00.0: Message 000046ed (seq 1) timeout
On 6.14.0-37 the same symptom happens after resume, but without the Message … timeout lines. Instead there are repeated authentication timeouts to the AP.
Reproduce: set an RTC wake alarm (echo +30 > /sys/class/rtc/rtc0/wakealarm) and run systemctl suspend. It reproduces every time. rtcwake -m freeze -s 25 reproduces it too.
What was tried (none worked)
d3cold_allowed=0on 0000:02:00.0. The device stays in D0 across suspend, and the result is the same broken link.- A systemd-sleep hook running
modprobe -r mt7615e(pre) andmodprobe mt7615e(post), withsystemctl suspend. The machine froze/rebooted while entering suspend, and nothing more was written to the journal. It is not clear whether the unload or the suspend itself triggered it. - PCI remove + rescan while the link was already broken (
echo 1 > /sys/bus/pci/devices/0000:02:00.0/remove; echo 1 > /sys/bus/pci/rescan). The machine froze/rebooted immediately, and the journal ends abruptly.
So the card cannot be re-initialised without a full reboot, and hot-unbinding it hangs the system.
Problem 2: ROM patch fails to load on 7.0.0-38 at every boot
On every boot with 7.0.0-38 (5 of 5 boots):
mt7615e 0000:02:00.0: Failed to get patch semaphore
mt7615e 0000:02:00.0: mediatek/mt7663pr2h.bin not found, switching to mediatek/mt7663pr2h_rebb.bin
mt7615e 0000:02:00.0: Failed to get patch semaphore
mt7615e 0000:02:00.0: failed to load mediatek/mt7663pr2h_rebb.bin
The pattern repeats ~10 times, and no HW/SW Version line is printed. With 6.14.0-37 (2 of 2 boots) the patch loads normally:
mt7615e 0000:02:00.0: HW/SW Version: 0x65326363, Build Time: 2006030247debug
mt7615e 0000:02:00.0: N9 Firmware Version: 3.1.1, Build Time: 20200604161656
Even so, Wi-Fi on 7.0 works at full speed after a fresh boot. The files are present: mt7663pr2h.bin.zst and mt7663pr2h_rebb.bin.zst in /lib/firmware/mediatek/.
Possibly related
- Linux Mint forum, same chip (14c3:7663) and same
-110/Message … timeoutafter resume on an Acer A315-43, unresolved: https://forums.linuxmint.com/viewtopic.php?t=402027 - Debian #1146149, MT7663 "Failed to get patch semaphore" on 6.12 and 7.1: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1146149
- #1110 (mt7921e, same symptom after s2idle resume). Note the difference: there
modprobe -r+ reload recovers the card; on this MT7663 any hot unbind (module unload or PCI remove) hangs the whole system.
Happy to test patches or collect more logs (e.g. with mt76 debug enabled).
- Dominant language
- C
- Stars
- 895
- Forks
- 461
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openwrt/mt76
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
MT76xx - WLAN leds doesn't work with the testing kernelMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
mt7925: Netgear A8000 (0846:9072) reports hw_path without WF0_5G, so 5 GHz band is never registeredOpen
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Difficulty 4/5 3-5 days Newbie friendliness 22/100
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
SPIDevice selects an active-high device as soon as it is createdPossibly taken @mikeysklar claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
adafruit/circuitpython#11869 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
gnif/LookingGlass#1352 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100