diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/77-mm-zte-port-types.rules | 75 | ||||
-rw-r--r-- | plugins/Makefile.am | 4 | ||||
-rw-r--r-- | plugins/mm-modem-hso.c | 3 | ||||
-rw-r--r-- | plugins/mm-modem-huawei.c | 8 | ||||
-rw-r--r-- | plugins/mm-modem-mbm.c | 17 | ||||
-rw-r--r-- | plugins/mm-modem-nokia.c | 12 | ||||
-rw-r--r-- | plugins/mm-modem-novatel-gsm.c | 17 | ||||
-rw-r--r-- | plugins/mm-modem-sierra.c | 12 | ||||
-rw-r--r-- | plugins/mm-modem-zte.c | 12 | ||||
-rw-r--r-- | plugins/mm-plugin-generic.c | 4 | ||||
-rw-r--r-- | plugins/mm-plugin-gobi.c | 4 | ||||
-rw-r--r-- | plugins/mm-plugin-hso.c | 4 | ||||
-rw-r--r-- | plugins/mm-plugin-huawei.c | 10 | ||||
-rw-r--r-- | plugins/mm-plugin-mbm.c | 4 | ||||
-rw-r--r-- | plugins/mm-plugin-moto-c.c | 4 | ||||
-rw-r--r-- | plugins/mm-plugin-nokia.c | 4 | ||||
-rw-r--r-- | plugins/mm-plugin-novatel.c | 4 | ||||
-rw-r--r-- | plugins/mm-plugin-option.c | 4 | ||||
-rw-r--r-- | plugins/mm-plugin-sierra.c | 13 | ||||
-rw-r--r-- | plugins/mm-plugin-zte.c | 11 |
20 files changed, 160 insertions, 66 deletions
diff --git a/plugins/77-mm-zte-port-types.rules b/plugins/77-mm-zte-port-types.rules new file mode 100644 index 00000000..9a98f87f --- /dev/null +++ b/plugins/77-mm-zte-port-types.rules @@ -0,0 +1,75 @@ +# do not edit this file, it will be overwritten on update + +ACTION!="add|change", GOTO="mm_zte_port_types_end" +SUBSYSTEM!="tty", GOTO="mm_zte_port_types_end" +SUBSYSTEMS!="usb", GOTO="mm_zte_port_types_end" +ATTRS{idVendor}!="19d2", GOTO="mm_zte_port_types_end" + +ATTRS{idProduct}=="0001", ATTRS{bInterfaceNumber}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0001", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0002", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0002", ATTRS{bInterfaceNumber}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0012", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0012", ATTRS{bInterfaceNumber}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0015", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0015", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0016", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0016", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0017", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0017", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0021", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0021", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0025", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0025", ATTRS{bInterfaceNumber}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0030", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0030", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0031", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0031", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0033", ATTRS{bInterfaceNumber}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0033", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0042", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0042", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0043", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0043", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0048", ATTRS{bInterfaceNumber}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0048", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0049", ATTRS{bInterfaceNumber}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0049", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0052", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0052", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0055", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0055", ATTRS{bInterfaceNumber}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0061", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0061", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0063", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0063", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0064", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0064", ATTRS{bInterfaceNumber}=="00", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="0066", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="0066", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +ATTRS{idProduct}=="2002", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" +ATTRS{idProduct}=="2002", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" + +LABEL="mm_zte_port_types_end" + diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 98450bcc..2e17fcf4 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -213,7 +213,9 @@ libmm_plugin_zte_la_LDFLAGS = \ udevrulesdir = $(UDEV_BASE_DIR)/rules.d -udevrules_DATA = 77-mm-ericsson-mbm.rules +udevrules_DATA = \ + 77-mm-ericsson-mbm.rules \ + 77-mm-zte-port-types.rules BUILT_SOURCES = \ mm-modem-gsm-hso-glue.h diff --git a/plugins/mm-modem-hso.c b/plugins/mm-modem-hso.c index 39c3e42b..f1132d43 100644 --- a/plugins/mm-modem-hso.c +++ b/plugins/mm-modem-hso.c @@ -564,6 +564,7 @@ static gboolean grab_port (MMModem *modem, const char *subsys, const char *name, + MMPortType suggested_type, gpointer user_data, GError **error) { @@ -601,7 +602,7 @@ grab_port (MMModem *modem, if (g_file_get_contents (hsotype_path, &contents, NULL, NULL)) { if (g_str_has_prefix (contents, "Control")) ptype = MM_PORT_TYPE_PRIMARY; - else + else if (g_str_has_prefix (contents, "Application") || g_str_has_prefix (contents, "Application2")) ptype = MM_PORT_TYPE_SECONDARY; g_free (contents); } diff --git a/plugins/mm-modem-huawei.c b/plugins/mm-modem-huawei.c index 43ee34d1..08ba7d84 100644 --- a/plugins/mm-modem-huawei.c +++ b/plugins/mm-modem-huawei.c @@ -496,11 +496,11 @@ handle_status_change (MMSerialPort *port, /*****************************************************************************/ -/* user_data != NULL means the port is a secondary port */ static gboolean grab_port (MMModem *modem, const char *subsys, const char *name, + MMPortType suggested_type, gpointer user_data, GError **error) { @@ -533,16 +533,14 @@ grab_port (MMModem *modem, if (usbif == 0) { if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) ptype = MM_PORT_TYPE_PRIMARY; - } else if (user_data) { + } else if (suggested_type == MM_PORT_TYPE_SECONDARY) { if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) ptype = MM_PORT_TYPE_SECONDARY; } port = mm_generic_gsm_grab_port (gsm, subsys, name, ptype, error); - if (!port) - goto out; - if (MM_IS_SERIAL_PORT (port)) { + if (port && MM_IS_SERIAL_PORT (port)) { g_object_set (G_OBJECT (port), MM_PORT_CARRIER_DETECT, FALSE, NULL); if (ptype == MM_PORT_TYPE_SECONDARY) { GRegex *regex; diff --git a/plugins/mm-modem-mbm.c b/plugins/mm-modem-mbm.c index 4fa22fab..1867829d 100644 --- a/plugins/mm-modem-mbm.c +++ b/plugins/mm-modem-mbm.c @@ -668,6 +668,7 @@ static gboolean grab_port (MMModem *modem, const char *subsys, const char *name, + MMPortType suggested_type, gpointer user_data, GError **error) { @@ -676,17 +677,17 @@ grab_port (MMModem *modem, MMPort *port = NULL; if (!strcmp (subsys, "tty")) { - if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) - ptype = MM_PORT_TYPE_PRIMARY; - else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) - ptype = MM_PORT_TYPE_SECONDARY; + if (suggested_type == MM_PORT_TYPE_UNKNOWN) { + if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) + ptype = MM_PORT_TYPE_PRIMARY; + else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) + ptype = MM_PORT_TYPE_SECONDARY; + } else + ptype = suggested_type; } port = mm_generic_gsm_grab_port (gsm, subsys, name, ptype, error); - if (!port) - return FALSE; - - if (MM_IS_SERIAL_PORT (port) && (ptype == MM_PORT_TYPE_PRIMARY)) { + if (port && MM_IS_SERIAL_PORT (port) && (ptype == MM_PORT_TYPE_PRIMARY)) { GRegex *regex; mm_generic_gsm_set_unsolicited_registration (MM_GENERIC_GSM (modem), TRUE); diff --git a/plugins/mm-modem-nokia.c b/plugins/mm-modem-nokia.c index a37c1143..379fba09 100644 --- a/plugins/mm-modem-nokia.c +++ b/plugins/mm-modem-nokia.c @@ -43,6 +43,7 @@ static gboolean grab_port (MMModem *modem, const char *subsys, const char *name, + MMPortType suggested_type, gpointer user_data, GError **error) { @@ -50,10 +51,13 @@ grab_port (MMModem *modem, MMPortType ptype = MM_PORT_TYPE_IGNORED; MMPort *port = NULL; - if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) - ptype = MM_PORT_TYPE_PRIMARY; - else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) - ptype = MM_PORT_TYPE_SECONDARY; + if (suggested_type == MM_PORT_TYPE_UNKNOWN) { + if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) + ptype = MM_PORT_TYPE_PRIMARY; + else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) + ptype = MM_PORT_TYPE_SECONDARY; + } else + ptype = suggested_type; port = mm_generic_gsm_grab_port (gsm, subsys, name, ptype, error); if (port && MM_IS_SERIAL_PORT (port)) { diff --git a/plugins/mm-modem-novatel-gsm.c b/plugins/mm-modem-novatel-gsm.c index 265810c3..2d2a96eb 100644 --- a/plugins/mm-modem-novatel-gsm.c +++ b/plugins/mm-modem-novatel-gsm.c @@ -159,6 +159,7 @@ static gboolean grab_port (MMModem *modem, const char *subsys, const char *name, + MMPortType suggested_type, gpointer user_data, GError **error) { @@ -166,16 +167,16 @@ grab_port (MMModem *modem, MMPortType ptype = MM_PORT_TYPE_IGNORED; MMPort *port = NULL; - if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) - ptype = MM_PORT_TYPE_PRIMARY; - else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) - ptype = MM_PORT_TYPE_SECONDARY; + if (suggested_type == MM_PORT_TYPE_UNKNOWN) { + if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) + ptype = MM_PORT_TYPE_PRIMARY; + else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) + ptype = MM_PORT_TYPE_SECONDARY; + } else + ptype = suggested_type; port = mm_generic_gsm_grab_port (gsm, subsys, name, ptype, error); - if (!port) - return FALSE; - - if (MM_IS_SERIAL_PORT (port) && (ptype == MM_PORT_TYPE_PRIMARY)) { + if (port && MM_IS_SERIAL_PORT (port) && (ptype == MM_PORT_TYPE_PRIMARY)) { /* Flip secondary ports to AT mode */ if (mm_serial_port_open (MM_SERIAL_PORT (port), NULL)) mm_serial_port_queue_command (MM_SERIAL_PORT (port), "$NWDMAT=1", 2, dmat_callback, NULL); diff --git a/plugins/mm-modem-sierra.c b/plugins/mm-modem-sierra.c index 69a7af30..e567a5da 100644 --- a/plugins/mm-modem-sierra.c +++ b/plugins/mm-modem-sierra.c @@ -128,11 +128,11 @@ enable (MMModem *modem, } } -/* user_data != NULL means the port is a secondary port */ static gboolean grab_port (MMModem *modem, const char *subsys, const char *name, + MMPortType suggested_type, gpointer user_data, GError **error) { @@ -140,13 +140,13 @@ grab_port (MMModem *modem, MMPortType ptype = MM_PORT_TYPE_IGNORED; MMPort *port; - if (user_data) { - if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) - ptype = MM_PORT_TYPE_SECONDARY; - } else { + if (suggested_type == MM_PORT_TYPE_UNKNOWN) { if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) ptype = MM_PORT_TYPE_PRIMARY; - } + else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) + ptype = MM_PORT_TYPE_SECONDARY; + } else + ptype = suggested_type; port = mm_generic_gsm_grab_port (gsm, subsys, name, ptype, error); diff --git a/plugins/mm-modem-zte.c b/plugins/mm-modem-zte.c index f2c0a342..087da567 100644 --- a/plugins/mm-modem-zte.c +++ b/plugins/mm-modem-zte.c @@ -151,6 +151,7 @@ static gboolean grab_port (MMModem *modem, const char *subsys, const char *name, + MMPortType suggested_type, gpointer user_data, GError **error) { @@ -158,10 +159,13 @@ grab_port (MMModem *modem, MMPortType ptype = MM_PORT_TYPE_IGNORED; MMPort *port = NULL; - if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) - ptype = MM_PORT_TYPE_PRIMARY; - else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) - ptype = MM_PORT_TYPE_SECONDARY; + if (suggested_type == MM_PORT_TYPE_UNKNOWN) { + if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY)) + ptype = MM_PORT_TYPE_PRIMARY; + else if (!mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_SECONDARY)) + ptype = MM_PORT_TYPE_SECONDARY; + } else + ptype = suggested_type; port = mm_generic_gsm_grab_port (gsm, subsys, name, ptype, error); if (port && MM_IS_SERIAL_PORT (port)) { diff --git a/plugins/mm-plugin-generic.c b/plugins/mm-plugin-generic.c index 208a61f2..802ab888 100644 --- a/plugins/mm-plugin-generic.c +++ b/plugins/mm-plugin-generic.c @@ -144,7 +144,7 @@ grab_port (MMPluginBase *base, } if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } @@ -152,7 +152,7 @@ grab_port (MMPluginBase *base, } else { if (caps & (MM_PLUGIN_BASE_PORT_CAP_GSM | CAP_CDMA)) { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) return NULL; } } diff --git a/plugins/mm-plugin-gobi.c b/plugins/mm-plugin-gobi.c index 6e5bfd9c..6c24cec4 100644 --- a/plugins/mm-plugin-gobi.c +++ b/plugins/mm-plugin-gobi.c @@ -134,7 +134,7 @@ grab_port (MMPluginBase *base, } if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } @@ -142,7 +142,7 @@ grab_port (MMPluginBase *base, } else { if (caps & (MM_PLUGIN_BASE_PORT_CAP_GSM | CAP_CDMA)) { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) return NULL; } } diff --git a/plugins/mm-plugin-hso.c b/plugins/mm-plugin-hso.c index b038b5ef..8493c9c1 100644 --- a/plugins/mm-plugin-hso.c +++ b/plugins/mm-plugin-hso.c @@ -148,14 +148,14 @@ grab_port (MMPluginBase *base, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base))); if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } } } else { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) return NULL; } diff --git a/plugins/mm-plugin-huawei.c b/plugins/mm-plugin-huawei.c index 4ef8c578..1ca67c68 100644 --- a/plugins/mm-plugin-huawei.c +++ b/plugins/mm-plugin-huawei.c @@ -298,21 +298,21 @@ grab_port (MMPluginBase *base, } if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } } } else { HuaweiSupportsInfo *info; - gboolean huawei_is_secondary = FALSE; + MMPortType ptype = MM_PORT_TYPE_UNKNOWN; info = g_object_get_data (G_OBJECT (task), TAG_SUPPORTS_INFO); - if (info && (product != 0x1001)) - huawei_is_secondary = info->secondary; + if (info && info->secondary && (product != 0x1001)) + ptype = MM_PORT_TYPE_SECONDARY; modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, GUINT_TO_POINTER (huawei_is_secondary), error)) + if (!mm_modem_grab_port (modem, subsys, name, ptype, NULL, error)) return NULL; } diff --git a/plugins/mm-plugin-mbm.c b/plugins/mm-plugin-mbm.c index 2af7eed7..a380f987 100644 --- a/plugins/mm-plugin-mbm.c +++ b/plugins/mm-plugin-mbm.c @@ -143,14 +143,14 @@ grab_port (MMPluginBase *base, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base))); if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } } } else { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) return NULL; } diff --git a/plugins/mm-plugin-moto-c.c b/plugins/mm-plugin-moto-c.c index 3e253613..af78ca91 100644 --- a/plugins/mm-plugin-moto-c.c +++ b/plugins/mm-plugin-moto-c.c @@ -128,14 +128,14 @@ grab_port (MMPluginBase *base, mm_plugin_get_name (MM_PLUGIN (base))); if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } } } else { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) return NULL; } diff --git a/plugins/mm-plugin-nokia.c b/plugins/mm-plugin-nokia.c index 06232209..3e4757c0 100644 --- a/plugins/mm-plugin-nokia.c +++ b/plugins/mm-plugin-nokia.c @@ -143,7 +143,7 @@ grab_port (MMPluginBase *base, } if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } @@ -151,7 +151,7 @@ grab_port (MMPluginBase *base, } else { if (caps & (MM_PLUGIN_BASE_PORT_CAP_GSM | CAP_CDMA)) { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) return NULL; } } diff --git a/plugins/mm-plugin-novatel.c b/plugins/mm-plugin-novatel.c index 33ab393b..d1f45f59 100644 --- a/plugins/mm-plugin-novatel.c +++ b/plugins/mm-plugin-novatel.c @@ -147,7 +147,7 @@ grab_port (MMPluginBase *base, } if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } @@ -155,7 +155,7 @@ grab_port (MMPluginBase *base, } else { if (caps & (MM_PLUGIN_BASE_PORT_CAP_GSM | CAP_CDMA)) { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) return NULL; } } diff --git a/plugins/mm-plugin-option.c b/plugins/mm-plugin-option.c index 6f4aaa97..520308ce 100644 --- a/plugins/mm-plugin-option.c +++ b/plugins/mm-plugin-option.c @@ -135,7 +135,7 @@ grab_port (MMPluginBase *base, } if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); return NULL; } @@ -143,7 +143,7 @@ grab_port (MMPluginBase *base, } else { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) return NULL; } } diff --git a/plugins/mm-plugin-sierra.c b/plugins/mm-plugin-sierra.c index e3d1bafb..471b20e8 100644 --- a/plugins/mm-plugin-sierra.c +++ b/plugins/mm-plugin-sierra.c @@ -127,7 +127,7 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *devfile, *sysfs_path; guint32 caps; - gpointer gsm_data = NULL; + MMPortType ptype = MM_PORT_TYPE_UNKNOWN; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -151,11 +151,11 @@ grab_port (MMPluginBase *base, /* Is it a GSM secondary port? */ if (g_object_get_data (G_OBJECT (task), TAG_SIERRA_SECONDARY_PORT)) - gsm_data = GUINT_TO_POINTER (TRUE); + ptype = MM_PORT_TYPE_SECONDARY; caps = mm_plugin_base_supports_task_get_probed_capabilities (task); if (!existing) { - if ((caps & MM_PLUGIN_BASE_PORT_CAP_GSM) || gsm_data) { + if ((caps & MM_PLUGIN_BASE_PORT_CAP_GSM) || (ptype != MM_PORT_TYPE_UNKNOWN)) { modem = mm_modem_sierra_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base))); @@ -166,15 +166,16 @@ grab_port (MMPluginBase *base, } if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, gsm_data, error)) { + if (!mm_modem_grab_port (modem, subsys, name, ptype, NULL, error)) { g_object_unref (modem); return NULL; } } } else { - if ((caps & (MM_PLUGIN_BASE_PORT_CAP_GSM | CAP_CDMA)) || gsm_data) { + if ( (caps & (MM_PLUGIN_BASE_PORT_CAP_GSM | CAP_CDMA)) + || (ptype != MM_PORT_TYPE_UNKNOWN)) { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, gsm_data, error)) + if (!mm_modem_grab_port (modem, subsys, name, ptype, NULL, error)) return NULL; } } diff --git a/plugins/mm-plugin-zte.c b/plugins/mm-plugin-zte.c index e830823f..08493dca 100644 --- a/plugins/mm-plugin-zte.c +++ b/plugins/mm-plugin-zte.c @@ -109,10 +109,17 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *sysfs_path; guint32 caps; + MMPortType ptype = MM_PORT_TYPE_UNKNOWN; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); + /* Look for port type hints */ + if (g_udev_device_get_property_as_boolean (port, "ID_MM_ZTE_PORT_TYPE_MODEM")) + ptype = MM_PORT_TYPE_PRIMARY; + else if (g_udev_device_get_property_as_boolean (port, "ID_MM_ZTE_PORT_TYPE_AUX")) + ptype = MM_PORT_TYPE_SECONDARY; + physdev = mm_plugin_base_supports_task_get_physdev (task); g_assert (physdev); sysfs_path = g_udev_device_get_sysfs_path (physdev); @@ -137,7 +144,7 @@ grab_port (MMPluginBase *base, } if (modem) { - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) { + if (!mm_modem_grab_port (modem, subsys, name, ptype, NULL, error)) { g_object_unref (modem); return NULL; } @@ -145,7 +152,7 @@ grab_port (MMPluginBase *base, } else { if (caps & (MM_PLUGIN_BASE_PORT_CAP_GSM | CAP_CDMA)) { modem = existing; - if (!mm_modem_grab_port (modem, subsys, name, NULL, error)) + if (!mm_modem_grab_port (modem, subsys, name, ptype, NULL, error)) return NULL; } } |