Re: cdc-wdm: unable to connect after suspend
From: Florian Klink <hidden>
Date: 2014-06-11 10:08:42
Am 11.06.2014 10:01, schrieb Bjørn Mork:
Florian Klink [off-list ref] writes:quoted
Am 10.06.2014 16:08, schrieb Florian Klink:quoted
Am 10.06.2014 14:09, schrieb BjÞrn Mork:quoted
Florian Klink [off-list ref] writes:quoted
Hi, I recently bought a notebook (Fujitsu Lifebook T904) with integrated 3G/4G modem (Sierra Wireless EM7305) thats powered by the cdc-wdm driver. It works without any problems on a fresh bootup using Networkmanager. However, after putting the notebook into standby and waking up again, I'm unable to get a connection (always reproducible, not signal quality related).Does it work again if you restart NetworkManager and ModemManager at this point?Nope. ModemManager gets confused completely and drops the modem out of the list of connections: ModemManager[3067]: <warn> Couldn't find support for device at '/sys/devices/pci0000:00/0000:00:19.0': not supported by any plugin ModemManager[3067]: <warn> Couldn't find support for device at '/sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0': not supported by any plugin ModemManager[3067]: [/dev/cdc-wdm1] Queried max control message size: 4096 ModemManager[3067]: [/dev/cdc-wdm1] No transaction matched in received messageAh, OK. Then I obviously guessed wrong. MM and the firmware does not agree on the current transaction sequence. I'm not sure why. The modem is sending unexpected messages, and I assume MM doesn't get the answers it is looking for. This could be caused by the driver cancelling the interrupt URB at an "inconvenient time" for the firmware. But I haven't seen issues like that with the Qualcomm based Sierra modems before. And you get into this state consistently on every suspend+resume? It would be useful to know which unexpeced messages we receive (errors? same message all over? older queued up messages being played back with unexpected delay?) Any chance you can enable libmbim + ModemManager debugging to get the MBIM message dumps?
Sure, I can provide the message dumps. Is it as simple as described in here (http://www.freedesktop.org/wiki/Software/ModemManager/Debugging/), or do I need to recompile libmbim + ModemManager with some additional (debug) flags enabled?
quoted
quoted
quoted
Does it help to do echo 0 >/sys/bus/usb/devices/x-y/power/persist prior to suspending the notebook? You'll have to replace "x-y" with the correct USB bus and port number. You can find this in e.g. the dmesg output. For example, if your log shows: qmi_wwan 2-4:1.8: cdc-wdm0: USB WDM device then x-y = 2-4.dmesg shows "cdc_mbim 1-6:2.12: cdc-wdm1: USB WDM device", so I did echo 0 > /sys/bus/usb/devices/1-6/power/persist. However, after a suspend/resume cycle, connecting didnt work either. Errors were the same as without persist = 0.Yes, my initial guess was wrong, so this is not the problem.quoted
quoted
dmesg doesn't really show an error message from the modem. Seems like it also has an issue resuming "Bus 001 Device 006: ID 0483:91d1 STMicroelectronics", but this shouldn't cause the problems with the modem...I attached the dmesg output, probably there's till something interesting inside ;-)Thanks. I wasn't expecting any errors there (I still don't think there is any real error here from the drivers point of view), but I wanted to see whether the modem is disconnected and rediscovered or just plainly suspended. But??? I cannot find anything related to the modem device in that log? Not even anything mentioning the "1-6" USB port.
I just sent the part of dmesg where the suspend & resume cycle happened. Of course, I see the device appearing on bootup: [ 11.537522] usb 1-6: new high-speed USB device number 11 using xhci_hcd [ 11.711214] usb 1-6: config 1 has an invalid interface number: 8 but max is 3 [ 11.711217] usb 1-6: config 1 has no interface number 1 [ 11.711432] usb 1-6: config 2 has an invalid interface number: 12 but max is 1 [ 11.711434] usb 1-6: config 2 has an invalid interface number: 13 but max is 1 [ 11.711435] usb 1-6: config 2 has an invalid interface number: 13 but max is 1 [ 11.711437] usb 1-6: config 2 has no interface number 0 [ 11.711439] usb 1-6: config 2 has no interface number 1 [...] [ 14.735330] usbcore: registered new interface driver cdc_ncm [ 14.736046] usbcore: registered new interface driver cdc_wdm [ 14.738273] cdc_mbim 1-6:2.12: cdc-wdm1: USB WDM device [ 14.738459] cdc_mbim 1-6:2.12 wwan0: register 'cdc_mbim' at usb-0000:00:14.0-6, CDC MBIM, 96:ba:xx:xx:xx:xx [ 14.738477] usbcore: registered new interface driver cdc_mbim [ 14.749795] systemd-udevd[248]: renamed network interface wwan0 to wwp0s20u6c2i12 ... but you don't get any dmesg output about it during the suspend/resume cycle. Florian
Attachments
- signature.asc [application/pgp-signature] 819 bytes