EG-25G USB reset when host resumes from sleep

Using a EG25-G module with ModemManager, the USB connection is sometimes lost when the host wakes up from sleep. When that happens, only AT commands work, but QMI commands always time out.

[ 641.017032] Disabling non-boot CPUs …
[ 641.021756] CPU1: shutdown
[ 641.024586] psci: CPU1 killed (polled 0 ms)
[ 641.033510] CPU2: shutdown
[ 641.036402] psci: CPU2 killed (polled 0 ms)
[ 641.044610] CPU3: shutdown
[ 641.047517] psci: CPU3 killed (polled 0 ms)
*** Sleep for some time ***
[ 641.055520] Enabling non-boot CPUs …
[ 641.060534] Detected VIPT I-cache on CPU1
[ 641.064586] arch_timer: CPU1: Trapping CNTVCT access
[ 641.069555] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[ 641.076896] CPU1 is up
[ 641.079922] Detected VIPT I-cache on CPU2
[ 641.083950] arch_timer: CPU2: Trapping CNTVCT access
[ 641.088913] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[ 641.096095] CPU2 is up
[ 641.099114] Detected VIPT I-cache on CPU3
[ 641.103142] arch_timer: CPU3: Trapping CNTVCT access
[ 641.108104] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[ 641.115280] CPU3 is up
[ 641.118480] sunxi-rsb 1f03400.rsb: RSB running at 4000000 Hz
[ 641.567816] PM: dpm_run_callback(): pm_generic_resume+0x0/0x44 returns -1
[ 641.574629] PM: Device mmc1:0001:1 failed to resume async: error -1
[ 641.681650] usb 3-1: reset high-speed USB device number 5 using ehci-platform
[ 641.847706] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 641.855779] option 3-1:1.0: device disconnected
[ 641.860611] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 641.868674] option 3-1:1.1: device disconnected
[ 641.873481] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 641.881548] option 3-1:1.2: device disconnected
[ 641.886394] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 641.894457] option 3-1:1.3: device disconnected
[ 641.900446] OOM killer enabled.
[ 641.904864] Restarting tasks …
[ 641.908522] option 3-1:1.0: GSM modem (1-port) converter detected
[ 641.925293] done.
[ 641.928652] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 641.935778] PM: suspend exit
[ 641.944364] option 3-1:1.1: GSM modem (1-port) converter detected
[ 641.953758] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 641.967188] option 3-1:1.2: GSM modem (1-port) converter detected
[ 641.974514] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB2
[ 641.986097] option 3-1:1.3: GSM modem (1-port) converter detected
[ 642.005809] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB3

I’ve installed latest firmware (EG25GGBR07A08M2G) when noticing the release notes state “Solved the problem for USB disconnection” twice, but the problem still occurs.
How can I troubleshoot this issue?

If it still have such issue, you may need to waiting for new firmware released. Thanks!

OK, thanks for your answer. Any idea when new firmware will be available please?

Thanks

It is hard to say, but you can email to support@quectel.com to get contact with our local FAE, when it released, they will inform you. Thanks!

We have been seeing same kind of problem using ppp daemon. When this problem occurred, from Linux system log can be find out a info “usb 1-1.2: reset high-speed USB device number 3 using ci_hdrc” and all tcp/ip link via ppp daemon stop to work. But at commands for example get GPS location or status of the modem still works. If the pppd is restarted tcp/ip link start to work as expected.

This happen using EG25GGBR07A07M2G_01.002.01.002.zip and EG25GGBR07A08M2G_01.003.01.003.zip

The autosuspend feature is mandatory for our product because of the power save.

Dear Rebeli,
Thanks for your inquiry in Quectel forum.
For your issue, you can check the following setting about the Auto Suspend function, as you know that power saving is the basic feature of the system. you can try to check the kernel code and do not set it. Thanks!

Hi Kyson,

We are using a special udev rule to enable auto suspend feature for a modem:

echo auto > ${1}/power/control
echo 500 > ${1}/power/autosuspend_delay_ms

but that end up same configuration situation. I have test that already.

BTV the problem is not to set up auto suspend. The problem is that modem may work, also auto suspend, several hours, days or so and then stop to work.

When the problem occurred, using dmesg, a line “usb 1-1.2: reset high-speed USB device number 3 using ci_hdrc” can be find out.

Hi all.
I also meeting similar situation.
EG25-G module USB connection,
Repeated connection and disconnection at some intervals as I do nothing.

So, connection process cant work well…

Could you let me know how to fix ?

Hi @s-shige
Can I ask what kind of driver you are using? I think the USB dropout might have something to do with the driver.

Hi
This information of lsmod is helpul to check for you ?

thx
Shige


Hi,
I am facing the same issue on Linux with modem EC25, the modem gets enumerated and is disconnected after a few seconds. The process of USB add then remove keeps happening in a loop.
Sometimes the modem is listed via lsusb, but after some time it gets removed and ppp interface also gets removed.

the modem info is:
Quectel
EC25-EFA
Revision: EC25EFAR06A11M4G
at+qgmr
EC25EFAR06A11M4G_01.001.01.001
Kernel version: 5.15.150
I applied the Kernel patches mentioned in Linux USB Driver User Guide 2.0, also tried to disable Linux USB autosuspend feature but it did not solved the issue.

Is this issue fixed in newer firmware versions? If yes, can you provide the latest firmware for EC25EFAR06A11M4G, along flasher application and instructions for Linux?

dmesg log of USB disconnect:

[ 40.080480] PM: Adding info for No Bus:ep_00
[ 40.083799] usb 1-3: USB disconnect, device number 18
[ 40.083810] device: ‘ep_81’: device_unregister
[ 40.083852] PM: Removing info for No Bus:ep_81
[ 40.083866] device: ‘ep_01’: device_unregister
[ 40.083889] PM: Removing info for No Bus:ep_01
[ 40.083926] bus: ‘usb’: remove device 1-3:1.0
[ 40.083966] bus: ‘usb-serial’: remove device ttyUSB1
[ 40.084005] device: ‘ttyUSB1’: device_unregister
[ 40.084090] PM: Removing info for No Bus:ttyUSB1
[ 40.084242] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 40.084281] PM: Removing info for usb-serial:ttyUSB1
[ 40.084307] option 1-3:1.0: device disconnected
[ 40.084336] PM: Removing info for usb:1-3:1.0
[ 40.084369] device: ‘ep_83’: device_unregister
[ 40.084397] PM: Removing info for No Bus:ep_83
[ 40.084406] device: ‘ep_82’: device_unregister
[ 40.084429] PM: Removing info for No Bus:ep_82
[ 40.084435] device: ‘ep_02’: device_unregister
[ 40.084457] PM: Removing info for No Bus:ep_02
[ 40.084488] bus: ‘usb’: remove device 1-3:1.1
[ 40.084519] bus: ‘usb-serial’: remove device ttyUSB2
[ 40.084543] device: ‘ttyUSB2’: device_unregister
[ 40.085242] PM: Removing info for No Bus:ttyUSB2
[ 40.085300] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 40.085322] PM: Removing info for usb-serial:ttyUSB2
[ 40.085350] option 1-3:1.1: device disconnected
[ 40.085381] PM: Removing info for usb:1-3:1.1
[ 40.085411] device: ‘ep_85’: device_unregister
[ 40.085444] PM: Removing info for No Bus:ep_85
[ 40.085452] device: ‘ep_84’: device_unregister
[ 40.085475] PM: Removing info for No Bus:ep_84
[ 40.085482] device: ‘ep_03’: device_unregister
[ 40.085505] PM: Removing info for No Bus:ep_03
[ 40.085539] bus: ‘usb’: remove device 1-3:1.2
[ 40.085574] bus: ‘usb-serial’: remove device ttyUSB3
[ 40.085613] device: ‘ttyUSB3’: device_unregister
[ 40.086401] PM: Removing info for No Bus:ttyUSB3
[ 40.086526] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 40.086560] PM: Removing info for usb-serial:ttyUSB3
[ 40.086773] option 1-3:1.2: device disconnected
[ 40.086873] PM: Removing info for usb:1-3:1.2
[ 40.086941] device: ‘ep_87’: device_unregister
[ 40.086989] PM: Removing info for No Bus:ep_87
[ 40.087000] device: ‘ep_86’: device_unregister
[ 40.087029] PM: Removing info for No Bus:ep_86
[ 40.087037] device: ‘ep_04’: device_unregister
[ 40.087062] PM: Removing info for No Bus:ep_04
[ 40.087101] bus: ‘usb’: remove device 1-3:1.3
[ 40.087192] bus: ‘usb-serial’: remove device ttyUSB4
[ 40.087244] device: ‘ttyUSB4’: device_unregister
[ 40.089000] PM: Removing info for No Bus:ttyUSB4
[ 40.089081] option1 ttyUSB4: GSM modem (1-port) converter now disconnected from ttyUSB4
[ 40.089105] PM: Removing info for usb-serial:ttyUSB4
[ 40.089195] option 1-3:1.3: device disconnected
[ 40.089229] PM: Removing info for usb:1-3:1.3
[ 40.089262] device: ‘ep_89’: device_unregister
[ 40.089298] PM: Removing info for No Bus:ep_89
[ 40.089338] bus: ‘usb’: remove device 1-3:1.4
[ 40.089342] PM: Removing info for usb:1-3:1.4
[ 40.089397] bus: ‘usb’: remove device 1-3:1.5
[ 40.089401] PM: Removing info for usb:1-3:1.5
[ 40.090401] device: ‘ep_00’: device_unregister
[ 40.090461] PM: Removing info for No Bus:ep_00
[ 40.090774] bus: ‘usb’: remove device 1-3
[ 40.090836] PM: Removing info for usb:1-3
[ 40.339241] usb 1-3: new high-speed USB device number 19 using xhci_hcd
[ 46.646597] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 46.760742] usb 1-3: new high-speed USB device number 20 using xhci_hcd
[ 52.790270] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 52.790412] usb usb1-port3: attempt power cycle
[ 53.750270] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 53.864668] usb 1-3: new high-speed USB device number 22 using xhci_hcd
[ 53.864874] usb 1-3: Device not responding to setup address.
[ 54.070290] usb 1-3: Device not responding to setup address.
[ 54.278320] usb 1-3: device not accepting address 22, error -71
[ 54.278490] usb usb1-port3: unable to enumerate USB device
[ 54.500923] usb 1-3: new high-speed USB device number 23 using xhci_hcd
[ 54.615699] usb 1-3: Device not responding to setup address.
[ 54.823133] usb 1-3: Device not responding to setup address.
[ 55.030788] usb 1-3: device not accepting address 23, error -71
[ 55.926233] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 55.926376] usb usb1-port3: attempt power cycle
[ 56.878404] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 56.993065] usb 1-3: new high-speed USB device number 26 using xhci_hcd
[ 56.993478] usb 1-3: Device not responding to setup address.
[ 57.198282] usb 1-3: Device not responding to setup address.
[ 57.406189] usb 1-3: device not accepting address 26, error -71
[ 57.406352] usb usb1-port3: unable to enumerate USB device
[ 57.630197] usb 1-3: new high-speed USB device number 27 using xhci_hcd
[ 63.606244] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 63.720932] usb 1-3: new high-speed USB device number 28 using xhci_hcd
[ 68.563865] axp288_fuel_gauge axp288_fuel_gauge: Fuel Gauge updating register values…
[ 69.750334] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 69.750495] usb usb1-port3: attempt power cycle
[ 70.710335] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 70.824788] usb 1-3: new high-speed USB device number 30 using xhci_hcd
[ 70.824884] usb 1-3: Device not responding to setup address.
[ 71.030317] usb 1-3: Device not responding to setup address.
[ 71.239744] usb 1-3: device not accepting address 30, error -71
[ 71.240037] usb usb1-port3: unable to enumerate USB device
[ 71.464828] usb 1-3: new high-speed USB device number 31 using xhci_hcd
[ 77.430395] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 77.544325] usb 1-3: new high-speed USB device number 32 using xhci_hcd
[ 83.575262] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 83.575801] usb usb1-port3: attempt power cycle
[ 84.534857] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 84.649242] usb 1-3: new high-speed USB device number 34 using xhci_hcd
[ 84.649367] usb 1-3: Device not responding to setup address.
[ 84.854809] usb 1-3: Device not responding to setup address.
[ 85.062788] usb 1-3: device not accepting address 34, error -71
[ 85.063119] usb usb1-port3: unable to enumerate USB device
[ 85.286610] usb 1-3: new high-speed USB device number 35 using xhci_hcd
[ 91.190902] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 92.143016] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 92.143777] usb usb1-port3: attempt power cycle
[ 93.102850] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 93.218264] usb 1-3: new high-speed USB device number 38 using xhci_hcd
[ 93.218325] usb 1-3: Device not responding to setup address.
[ 93.422806] usb 1-3: Device not responding to setup address.
[ 93.630912] usb 1-3: device not accepting address 38, error -71
[ 93.631357] usb usb1-port3: unable to enumerate USB device
[ 93.853736] usb 1-3: new high-speed USB device number 39 using xhci_hcd
[ 99.894846] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 100.009636] usb 1-3: new high-speed USB device number 40 using xhci_hcd
[ 106.038622] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 106.038931] usb usb1-port3: attempt power cycle
[ 107.054696] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 108.007389] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 108.007514] usb usb1-port3: unable to enumerate USB device

Thanks