openwrt / openwrt/mt76

Waking up from suspend freezes if MediaTek MT7610U wifi is plugged in

Open
#290 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
888
Forks
436
PR merge metrics
No merged PRs in 30d

Description

Kernel.org issue

I have the following device plugged in:
Bus 001 Device 011: ID 0586:3425 ZyXEL Communications Corp. NWD6505 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U]

When I wake up from suspend I see only underscore in the top left corner of the screen. Only SysRq+B works, so I have nothing to do but reboot.

This device is often not detected on boot and I have to replug it in, otherwise lsusb does not show it.

lsmod gives

mt76x0u                20480  0
mt76x0_common          49152  1 mt76x0u                                                                                                                     
mt76x02_usb            16384  1 mt76x0u                                                                                                                     
mt76_usb               36864  2 mt76x02_usb,mt76x0u                                                                                                         
mt76x02_lib            77824  3 mt76x02_usb,mt76x0_common,mt76x0u                                                                                           
mt76                   57344  5 mt76_usb,mt76x02_lib,mt76x02_usb,mt76x0_common,mt76x0u                                                                      
mac80211              958464  5 mt76,mt76_usb,mt76x02_lib,mt76x0_common,mt76x0u                                                                             
cfg80211              815104  4 mt76,mt76x02_lib,mac80211,mt76x02_usb

On 4.19 I did manage to get input devices working after waking up in a minute or so. Here is a dmesg.

Graphical subsystem died, I had to manually stop display manager and kill all my user processes.

The most notable lines:

[  475.480062] mt76x0 1-8:1.0: Error: MCU response pre-completed!
[  475.990066] mt76x0 1-8:1.0: Error: send MCU cmd failed:-110
[  475.990075] mt76x0 1-8:1.0: Error: MCU response pre-completed!
[  476.500003] mt76x0 1-8:1.0: Error: send MCU cmd failed:-110
[  476.500012] mt76x0 1-8:1.0: Error: MCU response pre-completed!
[  477.010046] mt76x0 1-8:1.0: Error: send MCU cmd failed:-110
[  477.010055] mt76x0 1-8:1.0: Error: MCU response pre-completed!
[  477.529997] mt76x0 1-8:1.0: Error: send MCU cmd failed:-110
[  477.530006] mt76x0 1-8:1.0: Error: MCU response pre-completed!
[  477.824907] mt76x0 1-8:1.0: Error: send MCU cmd failed:-71
[  477.824916] mt76x0 1-8:1.0: Error: MCU response pre-completed!
[  477.825029] usb 1-8: USB disconnect, device number 6
[  477.825639] usb 1-8:1.0: Error: send MCU cmd failed:-71
[  477.825647] usb 1-8:1.0: Error: MCU response pre-completed!
[  477.825653] usb 1-8:1.0: Error: send MCU cmd failed:-19
[  477.825658] usb 1-8:1.0: Error: MCU response pre-completed!
[  477.825662] usb 1-8:1.0: Error: send MCU cmd failed:-19
[  477.825667] usb 1-8:1.0: Error: MCU response pre-completed!
[  477.825671] usb 1-8:1.0: Error: send MCU cmd failed:-19

On 5.1 I see following errors right after boot (maybe on 4.19 too). I have to reconnect usb device to make i appear:

[   23.405299] usb 1-8: device descriptor read/64, error -110
[   23.635280] usb 1-8: new high-speed USB device number 7 using xhci_hcd
[   27.116384] audit: type=1131 audit(1562519777.616:38): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=user@995 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[   27.124458] audit: type=1131 audit(1562519777.623:39): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=user-runtime-dir@995 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[   28.948680] usb 1-8: device descriptor read/64, error -110
[   36.804418] audit: type=1130 audit(1562519787.303:40): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=packagekit comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[   37.836974] audit: type=1131 audit(1562519788.336:41): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-hostnamed comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[   44.525331] usb 1-8: device descriptor read/64, error -110
[   44.632035] usb usb1-port8: attempt power cycle
[   45.278620] usb 1-8: new high-speed USB device number 8 using xhci_hcd
[   50.495338] usb 1-8: device descriptor read/64, error -110
[   66.071964] usb 1-8: device descriptor read/64, error -110
[   66.308653] usb 1-8: new high-speed USB device number 9 using xhci_hcd
[   71.615233] usb 1-8: device descriptor read/64, error -110
[   87.188660] usb 1-8: device descriptor read/64, error -110
[   87.295375] usb usb1-port8: unable to enumerate USB device

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing suspend and resume with the ZyXEL NWD6505 MediaTek MT7610U device attached, then inspect the mt76x0u and USB power-management paths named in the logs. Use dmesg and lsusb to compare the MCU timeout, disconnect, and enumeration failures. Done means resume no longer freezes the system and the adapter is detected without replugging.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
networking, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.