problem with Sierra MC7750 (and a workaround)

Bjørn Mork bjorn at mork.no
Thu Sep 26 23:49:46 PDT 2013


Heath Kehoe <heath at digitalartefacts.com> writes:

> I was trying to get an MC7750-based USB modem working with libqmi. The
> kernel modules sierra and qmi_wwan are loaded when the device is
> connected; I can use qmi-network to start the data connection, and
> everything seems to work except there's no data flow. No packets get
> sent or received.
>
> Turns out the problem is that the modem needs to be explicitly told to
> use QMI_CTL_DATA_LINK_PROTOCOL_802_3 via CtlSetDataFormat. And since
> qmicli basically uses the default flags to qmi_device_open, libqmi
> doesn't send a CtlSetDataFormat.
>
> As a quick-and-dirty workaround, I hacked qmicli.c to add
> QMI_DEVICE_OPEN_FLAGS_NET_802_3 and
> QMI_DEVICE_OPEN_FLAGS_NET_NO_QOS_HEADER to open_flags. With that
> change, the MC7750 works.
>
> I was thinking I could extend qmicli.c to add a new option to be able
> to set those flags. Something like:
>
>    --device-open-net=<mode> where mode is:
>             "en"  : 802_3 + NO_QOS_HEADER
>             "eq" : 802_3 + QOS_HEADER
>             "rn" : RAW_IP + NO_QOS_HEADER
>             "rq" : RAW_IP + QOS_HEADER
>
> If the option is not given, the behavior will be like it is now (no
> flags, which means no CtlSetDataFormat is sent).
>
> Thoughts?

Adding the option, indluding the ability to not send CtlSetDataFormat at
all, seems like a very good idea to me.

But I wonder if maybe the default should be set to "802_3 +
NO_QOS_HEADER"? That's the only mode currently supported by the driver,
and I don't see any immediate change coming up.  So this is most likely
to just Make Stuff Work.  Unless there is some buggy device which barfs
on this command, of course.  But I haven't heard of that yet, and as you
note: MM will send this command on open.


Bjørn


More information about the libqmi-devel mailing list