base-modem: explicitly say if NET or TTY data ports are supported
A modem that creates exclusively bearer objects that work with NET ports (e.g. all QMI or MBIM modems) must not add any TTY port in the list of data ports. A modem that creates exclusively bearer objects that work with TTY ports (e.g. the generic modem) must not add any NET port in the list of data ports. A modem that may use both TTY and NET ports should add all in the list of data ports. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/324 Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/329
This commit is contained in:
@@ -1166,6 +1166,9 @@ mm_broadband_modem_altair_lte_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Altair bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
/* Since this is an LTE-only modem - don't bother query
|
||||
* anything else */
|
||||
MM_IFACE_MODEM_3GPP_CS_NETWORK_SUPPORTED, FALSE,
|
||||
|
||||
@@ -331,6 +331,9 @@ mm_broadband_modem_anydata_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -2903,6 +2903,9 @@ mm_broadband_modem_cinterion_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer (TTY) or Cinterion bearer (NET) supported */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
|
||||
NULL);
|
||||
|
||||
@@ -60,6 +60,9 @@ mm_broadband_modem_qmi_cinterion_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* QMI bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -387,6 +387,9 @@ mm_broadband_modem_foxconn_t77w968_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* MBIM bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
|
||||
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
|
||||
|
||||
@@ -4432,6 +4432,9 @@ mm_broadband_modem_huawei_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer (TTY) or Huawei bearer (NET) supported */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1762,6 +1762,9 @@ mm_broadband_modem_icera_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer (AT) or Icera bearer (NET) supported */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -351,6 +351,9 @@ mm_broadband_modem_iridium_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Iridium bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
/* Allow only up to 3 consecutive timeouts in the serial port */
|
||||
MM_BASE_MODEM_MAX_TIMEOUTS, 3,
|
||||
/* Only CS network is supported by the Iridium modem */
|
||||
|
||||
@@ -239,6 +239,9 @@ mm_broadband_modem_linktop_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports AT only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -382,6 +382,9 @@ mm_broadband_modem_longcheer_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports AT only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1456,6 +1456,9 @@ mm_broadband_modem_mbm_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* MBM bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,9 @@ mm_broadband_modem_motorola_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -876,6 +876,9 @@ mm_broadband_modem_mtk_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -338,6 +338,9 @@ mm_broadband_modem_nokia_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -649,6 +649,9 @@ mm_broadband_modem_novatel_lte_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Novatel LTE bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1554,6 +1554,9 @@ mm_broadband_modem_novatel_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -691,6 +691,9 @@ mm_broadband_modem_hso_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer (AT) and HSO bearer (NET) supported */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1136,6 +1136,9 @@ mm_broadband_modem_option_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_3GPP_IGNORED_FACILITY_LOCKS, ignored,
|
||||
NULL);
|
||||
}
|
||||
|
||||
@@ -150,6 +150,9 @@ mm_broadband_modem_pantech_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -116,6 +116,9 @@ mm_broadband_modem_qmi_qcom_soc_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* QMI bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -52,6 +52,9 @@ mm_broadband_modem_qmi_quectel_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* QMI bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -52,6 +52,9 @@ mm_broadband_modem_quectel_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +72,9 @@ mm_broadband_modem_samsung_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer (AT) and Icera bearer (NET) supported */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
/* We want to use DHCP always! */
|
||||
MM_BROADBAND_MODEM_ICERA_DEFAULT_IP_METHOD, MM_BEARER_IP_METHOD_DHCP,
|
||||
NULL);
|
||||
|
||||
@@ -110,6 +110,9 @@ mm_broadband_modem_sierra_icera_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Sierra bearer supports both NET and TTY */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1853,6 +1853,9 @@ mm_broadband_modem_sierra_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Sierra bearer supports both NET and TTY */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,9 @@ mm_broadband_modem_qmi_simtech_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* QMI modem supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
MM_BROADBAND_MODEM_INDICATORS_DISABLED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
@@ -1215,6 +1215,9 @@ mm_broadband_modem_simtech_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
MM_BROADBAND_MODEM_INDICATORS_DISABLED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
@@ -140,6 +140,9 @@ mm_broadband_modem_mbim_telit_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* MBIM bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
|
||||
NULL);
|
||||
|
||||
@@ -1358,6 +1358,9 @@ mm_broadband_modem_telit_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports AT only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
|
||||
NULL);
|
||||
|
||||
@@ -225,6 +225,9 @@ mm_broadband_modem_thuraya_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1811,6 +1811,9 @@ mm_broadband_modem_ublox_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer (TTY) and u-blox bearer (NET) supported */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -463,6 +463,9 @@ mm_broadband_modem_via_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1265,6 +1265,9 @@ mm_broadband_modem_wavecom_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -369,6 +369,9 @@ mm_broadband_modem_x22x_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,6 +53,9 @@ mm_broadband_modem_mbim_xmm_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* MBIM bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
|
||||
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
|
||||
|
||||
@@ -56,6 +56,9 @@ mm_broadband_modem_xmm_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -153,6 +153,9 @@ mm_broadband_modem_zte_icera_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer (AT) and Icera bearer (NET) supported */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -699,6 +699,9 @@ mm_broadband_modem_zte_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
+62
-9
@@ -56,6 +56,8 @@ enum {
|
||||
PROP_PRODUCT_ID,
|
||||
PROP_CONNECTION,
|
||||
PROP_REPROBE,
|
||||
PROP_DATA_NET_SUPPORTED,
|
||||
PROP_DATA_TTY_SUPPORTED,
|
||||
PROP_LAST
|
||||
};
|
||||
|
||||
@@ -92,7 +94,10 @@ struct _MMBaseModemPrivate {
|
||||
MMPortSerialAt *primary;
|
||||
MMPortSerialAt *secondary;
|
||||
MMPortSerialQcdm *qcdm;
|
||||
GList *data;
|
||||
|
||||
GList *data;
|
||||
gboolean data_net_supported;
|
||||
gboolean data_tty_supported;
|
||||
|
||||
/* GPS-enabled modems will have an AT port for control, and a raw serial
|
||||
* port to receive all GPS traces */
|
||||
@@ -1167,16 +1172,36 @@ mm_base_modem_organize_ports (MMBaseModem *self,
|
||||
self->priv->gps_control = (gps_control ? g_object_ref (gps_control) : NULL);
|
||||
self->priv->gps = (gps ? g_object_ref (gps) : NULL);
|
||||
|
||||
/* Build the final list of data ports, NET ports preferred */
|
||||
/* Append net ports to the final list of data ports, but only if the modem
|
||||
* supports them */
|
||||
if (data_net) {
|
||||
g_list_foreach (data_net, (GFunc)g_object_ref, NULL);
|
||||
self->priv->data = g_list_concat (self->priv->data, data_net);
|
||||
if (self->priv->data_net_supported) {
|
||||
g_list_foreach (data_net, (GFunc)g_object_ref, NULL);
|
||||
self->priv->data = g_list_concat (self->priv->data, data_net);
|
||||
} else
|
||||
mm_obj_dbg (self, "net ports available but ignored");
|
||||
}
|
||||
if (data_at_primary)
|
||||
self->priv->data = g_list_append (self->priv->data, g_object_ref (data_at_primary));
|
||||
if (data_at) {
|
||||
g_list_foreach (data_at, (GFunc)g_object_ref, NULL);
|
||||
self->priv->data = g_list_concat (self->priv->data, data_at);
|
||||
|
||||
/* Append tty ports to the final list of data ports, but only if the modem
|
||||
* supports them */
|
||||
if (data_at_primary || data_at) {
|
||||
if (self->priv->data_tty_supported) {
|
||||
if (data_at_primary)
|
||||
self->priv->data = g_list_append (self->priv->data, g_object_ref (data_at_primary));
|
||||
if (data_at) {
|
||||
g_list_foreach (data_at, (GFunc)g_object_ref, NULL);
|
||||
self->priv->data = g_list_concat (self->priv->data, data_at);
|
||||
}
|
||||
} else
|
||||
mm_obj_dbg (self, "at data ports available but ignored");
|
||||
}
|
||||
|
||||
/* Fail if we haven't added any single data port; this is probably a plugin
|
||||
* misconfiguration */
|
||||
if (!self->priv->data) {
|
||||
g_set_error_literal (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
|
||||
"Failed to find a data port in the modem");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if defined WITH_QMI
|
||||
@@ -1483,6 +1508,12 @@ set_property (GObject *object,
|
||||
g_clear_object (&self->priv->connection);
|
||||
self->priv->connection = g_value_dup_object (value);
|
||||
break;
|
||||
case PROP_DATA_NET_SUPPORTED:
|
||||
self->priv->data_net_supported = g_value_get_boolean (value);
|
||||
break;
|
||||
case PROP_DATA_TTY_SUPPORTED:
|
||||
self->priv->data_tty_supported = g_value_get_boolean (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -1525,6 +1556,12 @@ get_property (GObject *object,
|
||||
case PROP_CONNECTION:
|
||||
g_value_set_object (value, self->priv->connection);
|
||||
break;
|
||||
case PROP_DATA_NET_SUPPORTED:
|
||||
g_value_set_boolean (value, self->priv->data_net_supported);
|
||||
break;
|
||||
case PROP_DATA_TTY_SUPPORTED:
|
||||
g_value_set_boolean (value, self->priv->data_tty_supported);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -1683,4 +1720,20 @@ mm_base_modem_class_init (MMBaseModemClass *klass)
|
||||
FALSE,
|
||||
G_PARAM_READWRITE);
|
||||
g_object_class_install_property (object_class, PROP_REPROBE, properties[PROP_REPROBE]);
|
||||
|
||||
properties[PROP_DATA_NET_SUPPORTED] =
|
||||
g_param_spec_boolean (MM_BASE_MODEM_DATA_NET_SUPPORTED,
|
||||
"Data NET supported",
|
||||
"Whether the modem supports connection via a NET port.",
|
||||
FALSE,
|
||||
G_PARAM_READWRITE);
|
||||
g_object_class_install_property (object_class, PROP_DATA_NET_SUPPORTED, properties[PROP_DATA_NET_SUPPORTED]);
|
||||
|
||||
properties[PROP_DATA_TTY_SUPPORTED] =
|
||||
g_param_spec_boolean (MM_BASE_MODEM_DATA_TTY_SUPPORTED,
|
||||
"Data TTY supported",
|
||||
"Whether the modem supports connection via a TTY port.",
|
||||
FALSE,
|
||||
G_PARAM_READWRITE);
|
||||
g_object_class_install_property (object_class, PROP_DATA_TTY_SUPPORTED, properties[PROP_DATA_TTY_SUPPORTED]);
|
||||
}
|
||||
|
||||
+11
-9
@@ -54,15 +54,17 @@ typedef struct _MMBaseModem MMBaseModem;
|
||||
typedef struct _MMBaseModemClass MMBaseModemClass;
|
||||
typedef struct _MMBaseModemPrivate MMBaseModemPrivate;
|
||||
|
||||
#define MM_BASE_MODEM_CONNECTION "base-modem-connection"
|
||||
#define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts"
|
||||
#define MM_BASE_MODEM_VALID "base-modem-valid"
|
||||
#define MM_BASE_MODEM_DEVICE "base-modem-device"
|
||||
#define MM_BASE_MODEM_DRIVERS "base-modem-drivers"
|
||||
#define MM_BASE_MODEM_PLUGIN "base-modem-plugin"
|
||||
#define MM_BASE_MODEM_VENDOR_ID "base-modem-vendor-id"
|
||||
#define MM_BASE_MODEM_PRODUCT_ID "base-modem-product-id"
|
||||
#define MM_BASE_MODEM_REPROBE "base-modem-reprobe"
|
||||
#define MM_BASE_MODEM_CONNECTION "base-modem-connection"
|
||||
#define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts"
|
||||
#define MM_BASE_MODEM_VALID "base-modem-valid"
|
||||
#define MM_BASE_MODEM_DEVICE "base-modem-device"
|
||||
#define MM_BASE_MODEM_DRIVERS "base-modem-drivers"
|
||||
#define MM_BASE_MODEM_PLUGIN "base-modem-plugin"
|
||||
#define MM_BASE_MODEM_VENDOR_ID "base-modem-vendor-id"
|
||||
#define MM_BASE_MODEM_PRODUCT_ID "base-modem-product-id"
|
||||
#define MM_BASE_MODEM_REPROBE "base-modem-reprobe"
|
||||
#define MM_BASE_MODEM_DATA_NET_SUPPORTED "base-modem-data-net-supported"
|
||||
#define MM_BASE_MODEM_DATA_TTY_SUPPORTED "base-modem-data-tty-supported"
|
||||
|
||||
struct _MMBaseModem {
|
||||
MmGdbusObjectSkeleton parent;
|
||||
|
||||
@@ -5572,6 +5572,9 @@ mm_broadband_modem_mbim_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* MBIM bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
|
||||
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
|
||||
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
|
||||
|
||||
@@ -10084,6 +10084,9 @@ mm_broadband_modem_qmi_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* QMI bearer supports NET only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -11962,6 +11962,9 @@ mm_broadband_modem_new (const gchar *device,
|
||||
MM_BASE_MODEM_PLUGIN, plugin,
|
||||
MM_BASE_MODEM_VENDOR_ID, vendor_id,
|
||||
MM_BASE_MODEM_PRODUCT_ID, product_id,
|
||||
/* Generic bearer supports TTY only */
|
||||
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
|
||||
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user