[PATCH] telit: support QMI and MBIM modems
David McCullough
david.mccullough at accelerated.com
Mon Mar 27 10:47:02 UTC 2017
Hi all,
I am a little late to the party but here is the patch I have been running
to do this. I have been meaning to clean it up and send it in. Not sure
if there is anything here that will help out but I figured it can't hurt :-)
Cheers,
Davidm
Daniele Palmas wrote the following:
> Hi Aleksander,
>
> 2017-03-24 15:33 GMT+01:00 Daniele Palmas <dnlplm at gmail.com>:
> > Hi Aleksander,
> >
> > 2017-03-24 14:48 GMT+01:00 Aleksander Morgado <aleksander at aleksander.es>:
> >> Vendor specific plugins that support QMI or MBIM based devices need to
> >> handle the creation of these modems themselves.
> >>
> >> https://bugs.freedesktop.org/show_bug.cgi?id=100372
> >> ---
> >>
> >> Hey Carlo and Daniele,
> >>
> >> This patch makes the Telit plugin accept QMI and MBIM modems. Can any of you test it with such modems to make sure the Telit plugin is the one grabbing them?
> >>
> >
> > Sure, I can give it a try on Monday.
> >
>
> Applying your patch and testing with an mbim based I still see that
> the generic plugin is used
>
> daniele at L2122:~/git/ModemManager$ mmcli -L
>
> Found 1 modems:
> /org/freedesktop/ModemManager1/Modem/0 [Generic] MBIM [1BC7:0032]
>
> So in the log I found
>
> ModemManager[3807]: <debug> (Telit) [cdc-wdm0] filtered by implicit MBIM driver
>
> and added
>
> MM_PLUGIN_ALLOWED_QMI, TRUE,
> MM_PLUGIN_ALLOWED_MBIM, TRUE,
>
> in mm_plugin_create.
>
> I'm now seeing
>
> ModemManager[5758]: <debug> MBIM-powered Telit modem found...
>
> but also
>
> ModemManager[5758]: <warn> Couldn't start initialization: Cannot
> initialize: MBIM port went missing
> ModemManager[5758]: <warn> couldn't initialize the modem: 'Modem is
> unusable, cannot fully initialize'
>
> and the modem was not recognized.
>
> I had also to fix telit_grab_port in order to take mbim, qmi and net
> ports. Does this make sense?
>
> Daniele
>
> >> Cheers!
> >>
> >> ---
> >> plugins/telit/77-mm-telit-port-types.rules | 3 ---
> >> plugins/telit/mm-plugin-telit.c | 33 +++++++++++++++++++++++++++++-
> >> 2 files changed, 32 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/plugins/telit/77-mm-telit-port-types.rules b/plugins/telit/77-mm-telit-port-types.rules
> >> index 36a4f99f..1b58a3d9 100644
> >> --- a/plugins/telit/77-mm-telit-port-types.rules
> >> +++ b/plugins/telit/77-mm-telit-port-types.rules
> >> @@ -51,7 +51,4 @@ ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0022", ENV{ID_MM_TELIT_PORTS_TAGGED}
> >> ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_MM_TELIT_TAGGED}="1"
> >> ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_MM_TELIT_PORTS_TAGGED}="1"
> >>
> >> -# NOTE: Qualcomm Gobi-based devices like the LE920 should not be handled
> >> -# by this plugin, but by the Gobi plugin.
> >> -
> >> LABEL="mm_telit_port_types_end"
> >> diff --git a/plugins/telit/mm-plugin-telit.c b/plugins/telit/mm-plugin-telit.c
> >> index ec3c024f..abb87e4f 100644
> >> --- a/plugins/telit/mm-plugin-telit.c
> >> +++ b/plugins/telit/mm-plugin-telit.c
> >> @@ -28,6 +28,15 @@
> >> #include "mm-common-telit.h"
> >> #include "mm-broadband-modem-telit.h"
> >>
> >> +
> >> +#if defined WITH_QMI
> >> +# include "mm-broadband-modem-qmi.h"
> >> +#endif
> >> +
> >> +#if defined WITH_MBIM
> >> +# include "mm-broadband-modem-mbim.h"
> >> +#endif
> >> +
> >> G_DEFINE_TYPE (MMPluginTelit, mm_plugin_telit, MM_TYPE_PLUGIN)
> >>
> >> MM_PLUGIN_DEFINE_MAJOR_VERSION
> >> @@ -44,6 +53,28 @@ create_modem (MMPlugin *self,
> >> GList *probes,
> >> GError **error)
> >> {
> >> +#if defined WITH_QMI
> >> + if (mm_port_probe_list_has_qmi_port (probes)) {
> >> + mm_dbg ("QMI-powered Telit modem found...");
> >> + return MM_BASE_MODEM (mm_broadband_modem_qmi_new (uid,
> >> + drivers,
> >> + mm_plugin_get_name (self),
> >> + vendor,
> >> + product));
> >> + }
> >> +#endif
> >> +
> >> +#if defined WITH_MBIM
> >> + if (mm_port_probe_list_has_mbim_port (probes)) {
> >> + mm_dbg ("MBIM-powered Telit modem found...");
> >> + return MM_BASE_MODEM (mm_broadband_modem_mbim_new (uid,
> >> + drivers,
> >> + mm_plugin_get_name (self),
> >> + vendor,
> >> + product));
> >> + }
> >> +#endif
> >> +
> >> return MM_BASE_MODEM (mm_broadband_modem_telit_new (uid,
> >> drivers,
> >> mm_plugin_get_name (self),
> >> @@ -56,7 +87,7 @@ create_modem (MMPlugin *self,
> >> G_MODULE_EXPORT MMPlugin *
> >> mm_plugin_create (void)
> >> {
> >> - static const gchar *subsystems[] = { "tty", NULL };
> >> + static const gchar *subsystems[] = { "tty", "net", "usb", NULL };
> >> /* Vendors: Telit */
> >> static const guint16 vendor_ids[] = { 0x1bc7, 0 };
> >> static const gchar *vendor_strings[] = { "telit", NULL };
> >> --
> >> 2.12.0
> _______________________________________________
> ModemManager-devel mailing list
> ModemManager-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
--
David McCullough, davidm at spottygum.com, Ph: 0410 560 763
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ModemManager-telit-LE910-NA_V2.patch
Type: text/x-diff
Size: 4407 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20170327/0b0d1ca7/attachment-0001.patch>
More information about the ModemManager-devel
mailing list