aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Palmas <dnlplm@gmail.com>2022-05-04 14:26:53 +0200
committerDaniele Palmas <dnlplm@gmail.com>2022-05-24 09:22:06 +0200
commit1642c5e00ff37b3e4a92f371924d1320af94d6cd (patch)
treef8667449c5c905104a4f0851ed5e849a606734e3
parentce71b580fc1e722d93c09cefaaeaf41e4ec6e545 (diff)
telit: add wwan support
-rw-r--r--plugins/telit/mm-broadband-modem-mbim-telit.c14
-rw-r--r--plugins/telit/mm-broadband-modem-mbim-telit.h3
-rw-r--r--plugins/telit/mm-plugin-telit.c26
3 files changed, 26 insertions, 17 deletions
diff --git a/plugins/telit/mm-broadband-modem-mbim-telit.c b/plugins/telit/mm-broadband-modem-mbim-telit.c
index 15625553..62c8d087 100644
--- a/plugins/telit/mm-broadband-modem-mbim-telit.c
+++ b/plugins/telit/mm-broadband-modem-mbim-telit.c
@@ -136,14 +136,16 @@ mm_broadband_modem_mbim_telit_new (const gchar *device,
const gchar **drivers,
const gchar *plugin,
guint16 vendor_id,
- guint16 product_id)
+ guint16 product_id,
+ guint16 subsystem_vendor_id)
{
return g_object_new (MM_TYPE_BROADBAND_MODEM_MBIM_TELIT,
- MM_BASE_MODEM_DEVICE, device,
- MM_BASE_MODEM_DRIVERS, drivers,
- MM_BASE_MODEM_PLUGIN, plugin,
- MM_BASE_MODEM_VENDOR_ID, vendor_id,
- MM_BASE_MODEM_PRODUCT_ID, product_id,
+ MM_BASE_MODEM_DEVICE, device,
+ MM_BASE_MODEM_DRIVERS, drivers,
+ MM_BASE_MODEM_PLUGIN, plugin,
+ MM_BASE_MODEM_VENDOR_ID, vendor_id,
+ MM_BASE_MODEM_PRODUCT_ID, product_id,
+ MM_BASE_MODEM_SUBSYSTEM_VENDOR_ID, subsystem_vendor_id,
/* MBIM bearer supports NET only */
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
diff --git a/plugins/telit/mm-broadband-modem-mbim-telit.h b/plugins/telit/mm-broadband-modem-mbim-telit.h
index 42b31746..50c21e20 100644
--- a/plugins/telit/mm-broadband-modem-mbim-telit.h
+++ b/plugins/telit/mm-broadband-modem-mbim-telit.h
@@ -42,6 +42,7 @@ MMBroadbandModemMbimTelit *mm_broadband_modem_mbim_telit_new (const gchar *devi
const gchar **drivers,
const gchar *plugin,
guint16 vendor_id,
- guint16 product_id);
+ guint16 product_id,
+ guint16 subsystem_vendor_id);
#endif /* MM_BROADBAND_MODEM_TELIT_H */
diff --git a/plugins/telit/mm-plugin-telit.c b/plugins/telit/mm-plugin-telit.c
index 856081e5..89777b2c 100644
--- a/plugins/telit/mm-plugin-telit.c
+++ b/plugins/telit/mm-plugin-telit.c
@@ -71,7 +71,8 @@ create_modem (MMPlugin *self,
drivers,
mm_plugin_get_name (self),
vendor,
- product));
+ product,
+ subsystem_vendor));
}
#endif
@@ -87,9 +88,13 @@ create_modem (MMPlugin *self,
G_MODULE_EXPORT MMPlugin *
mm_plugin_create (void)
{
- static const gchar *subsystems[] = { "tty", "net", "usbmisc", NULL };
+ static const gchar *subsystems[] = { "tty", "net", "usbmisc", "wwan", NULL };
/* Vendors: Telit */
static const guint16 vendor_ids[] = { 0x1bc7, 0 };
+ static const mm_uint16_pair subsystem_vendor_ids[] = {
+ { 0x17cb, 0x1c5d }, /* FN990 */
+ { 0, 0 }
+ };
static const gchar *vendor_strings[] = { "telit", NULL };
/* Custom init for port identification */
static const MMAsyncMethod custom_init = {
@@ -99,14 +104,15 @@ mm_plugin_create (void)
return MM_PLUGIN (
g_object_new (MM_TYPE_PLUGIN_TELIT,
- MM_PLUGIN_NAME, MM_MODULE_NAME,
- MM_PLUGIN_ALLOWED_SUBSYSTEMS, subsystems,
- MM_PLUGIN_ALLOWED_VENDOR_IDS, vendor_ids,
- MM_PLUGIN_ALLOWED_VENDOR_STRINGS, vendor_strings,
- MM_PLUGIN_ALLOWED_AT, TRUE,
- MM_PLUGIN_ALLOWED_QMI, TRUE,
- MM_PLUGIN_ALLOWED_MBIM, TRUE,
- MM_PLUGIN_CUSTOM_INIT, &custom_init,
+ MM_PLUGIN_NAME, MM_MODULE_NAME,
+ MM_PLUGIN_ALLOWED_SUBSYSTEMS, subsystems,
+ MM_PLUGIN_ALLOWED_VENDOR_IDS, vendor_ids,
+ MM_PLUGIN_ALLOWED_SUBSYSTEM_VENDOR_IDS, subsystem_vendor_ids,
+ MM_PLUGIN_ALLOWED_VENDOR_STRINGS, vendor_strings,
+ MM_PLUGIN_ALLOWED_AT, TRUE,
+ MM_PLUGIN_ALLOWED_QMI, TRUE,
+ MM_PLUGIN_ALLOWED_MBIM, TRUE,
+ MM_PLUGIN_CUSTOM_INIT, &custom_init,
NULL));
}