Posted by on Dic 29, 2016 in development, kernel, Linux, MBIM, ModemManager, Telit |

Telit LE922 rmnet and MBIM support has been recently added in Linux kernel.

Telit LE922

Telit LE922

Telit LE922 product series key features:

  • LTE data rates in 4G networks up to 300 Mpbs downlink and 50Mbps in uplink.
  • Carrier aggregation up to 40MHz bandwidth, both intraband and interband, and MIMO 2×2
  • Multiple regional variants to support the various bands (FDD/TDD) and band combinations deployed world-wide
  • LGA form factor
  • Cortex-A7 application processor already embedded in the SoC

Telit LE922 rmnet support

Support was introduced in kernel version 4.9-rc8 with commit 9bd813da24cd49d749911d7fdc0e9ae9a673d746. The only notable thing is the DTR setting required, making this device to use QMI_QUIRK_SET_DTR.

Telit LE922 MBIM support

Support was introduced in kernel version 4.9 with commit 7b8076ce8a00d553ae9d3b7eb5f0cc3e63cb16f1.

This was a bit trickier, since I expected the MBIM device to work out-of-the-box with the cdc_mbim class driver, but I was wrong: there were no problems on the management of the device, but, as soon as the data connection was established, USB packets on the MBIM data interface were nakked.

Sniffing the USB flow when using the Win10 MBIM driver gave some hints and, after some discussions with a really helpful kernel developer (you can find them here and here), it turned out that the problem was in a single line of the cdc_ncm driver, used for toggling the alternate setting of the MBIM data interface. This line was introduced for dealing with some buggy Huawei modems when setting the proper NTB format.

In the submitted patch a new quirk at the cdc_mbim driver level was introduced to solve the situation with Telit modem.

Serial support

Another patch for the option driver added support for the serial devices supported by those compositions.

ModemManager fix

Telit LE922 rmnet composition can be used with the master branch of ModemManager: a small fix was required due to an unexpected answer to pin status request.