Modem kernel driver changes from cdc_mbim to qmi_wwan after suspend/resume?

Bjørn Mork bjorn at mork.no
Thu Dec 19 11:15:53 UTC 2019


Aleksander Morgado <aleksander at aleksander.es> writes:

> Hey Bjørn & all,
>
> I wonder if you have any idea why this issue is happening?
> https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/165#note_368404
>
> We can see how the kernel driver reported as managing the device that
> owns the cdc-wdm port changes from cdc_mbim (original one after boot)
> to qmi_wwan (after a suspend/resume cycle). This makes ModemManager
> attempt QMI probing instead of MBIM probing on the port, and that
> fails, so the modem is no longer used after the suspend/resume cycle.
>
> Any hint?

I have the same laptop myself, and can comfirm that it has this annoying
issue with removing power from the modem slot on suspend.  Which means
that the modem will always do a full boot with driver probing and MM
probing on every resume.  Pretty stupid platform design if you ask me,
unnecessarily delaying startup after resume and preventing persistent
connections to the network.

But this platform bug doesn't explain the change of driver. That is
casued by some unknown change to the qmi_wwan driver.  Notice how it is
probing USB interface #12 here:

[gio dic 19 10:27:02 2019] qmi_wwan 1-2:1.12: cdc-wdm0: USB WDM device
[gio dic 19 10:27:02 2019] qmi_wwan 1-2:1.12 wwan0: register 'qmi_wwan' at usb-0000:00:14.0-2, WWAN/QMI device, da:5e:a6:8f:c8:1f
[gio dic 19 10:27:02 2019] qmi_wwan 1-2:1.12 wwan0: unregister 'qmi_wwan' usb-0000:00:14.0-2, WWAN/QMI device
[gio dic 19 10:27:02 2019] qmi_wwan 1-2:1.12: cdc-wdm0: USB WDM device
[gio dic 19 10:27:02 2019] qmi_wwan 1-2:1.12 wwan0: register 'qmi_wwan' at usb-0000:00:14.0-2, WWAN/QMI device, da:5e:a6:8f:c8:1f
[gio dic 19 10:27:03 2019] qmi_wwan 1-2:1.12 wwp0s20f0u2i12: renamed from wwan0


This is only possible if either the driver is modified or the EM7455
device ID is added dynamically. I am guessing the latter, and that this
breakage was added *after* the initial boot probing.

Check with e.g:

 cat /sys/bus/usb/drivers/qmi_wwan/new_id

It should normally output nothing.


Bjørn


More information about the ModemManager-devel mailing list