Thread (11 messages) flat view 11 messages, 3 authors, 2014-06-12

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
message
Ah, 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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help