MT7603e does not handle SMPS well, making 2.4GHz WiFi disappear or system crash or connection unstable or lost
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 888
- Forks
- 436
- PR merge metrics
- No merged PRs in 30d
Description
I have two SSIDs on the 2.4G WiFi, and sometimes they both disappeared after seeing these warnings.
My assumption is that sometimes the PS status of a client is not updated successfully, and the router side still keeps the old PS status, which could potentially make WiFi connection unstable. So setting htmode to Legacy/None to disable SMPS feature introduced by 802.11n could really help to solve the issue.
If my guess is correct, setting mode to Legacy may help. Partially
After applying https://github.com/easyteacher/mt76/commit/d287c0566819047999f0852f7e20ecde5030bc0e I found that the warning can always be triggered when my laptop with Intel AX200 is connected to 2.4G AP with power saving on.
- Make sure Power Saving is off by
sudo iwconfig wlp2s0 power off, and then disable WiFi on the laptop. - Reboot the router
- Wait until the router finishes boot, and ssh into the router from another device like a mobile phone.
- Run
watch "dmesg | tail" - Enable WiFi on the laptop, and connect to the 2.4G AP.
- Run
sudo iwconfig wlp2s0 power on - Watch the output from the SSH terminal. The message should be there,
which can prove that mt7603 does not set SMPS status to the correct value for the first time (mt76_poll returns false).
if (mt76_poll(dev, addr + 2 * 4, MT_WTBL1_W2_SMPS, enabled, 5000))
sta->smps = enabled;
else
printk(KERN_ALERT "set SMPS status failed.");
[ 1071.819628] set SMPS status failed.
[ 1071.934222] set SMPS status failed.
[ 1072.001711] set SMPS status failed.
[ 1072.160566] set SMPS status failed.
[ 1072.235204] set SMPS status failed.
[ 1072.323898] set SMPS status failed.
[ 1072.807554] set SMPS status failed.
[ 1073.353395] set SMPS status failed.
[ 1073.659795] set SMPS status failed.
[ 1073.799971] set SMPS status failed.
[ 1073.870927] set SMPS status failed.
[ 1073.949431] set SMPS status failed.
[ 1074.031043] set SMPS status failed.
[ 1074.103286] set SMPS status failed.
[ 1074.202853] set SMPS status failed.
Contributor guide
No contributing guide indexed for this repository
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.
Research direction
Start with the MT7603 SMPS update path containing the shown mt76_poll call, then reproduce the warning using the listed Intel AX200 power-saving steps and monitor dmesg. Trace why the SMPS status update is not observed; done means the warning no longer occurs during the reproduction and the 2.4GHz connection remains stable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100