diff options
43 files changed, 196 insertions, 18 deletions
diff --git a/plugins/altair/mm-broadband-modem-altair-lte.c b/plugins/altair/mm-broadband-modem-altair-lte.c index 6aebbd93..551a7cac 100644 --- a/plugins/altair/mm-broadband-modem-altair-lte.c +++ b/plugins/altair/mm-broadband-modem-altair-lte.c @@ -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, diff --git a/plugins/anydata/mm-broadband-modem-anydata.c b/plugins/anydata/mm-broadband-modem-anydata.c index 55804fcd..95f8cbd2 100644 --- a/plugins/anydata/mm-broadband-modem-anydata.c +++ b/plugins/anydata/mm-broadband-modem-anydata.c @@ -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); } diff --git a/plugins/cinterion/mm-broadband-modem-cinterion.c b/plugins/cinterion/mm-broadband-modem-cinterion.c index 7eeb8ade..1e2651d0 100644 --- a/plugins/cinterion/mm-broadband-modem-cinterion.c +++ b/plugins/cinterion/mm-broadband-modem-cinterion.c @@ -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); diff --git a/plugins/cinterion/mm-broadband-modem-qmi-cinterion.c b/plugins/cinterion/mm-broadband-modem-qmi-cinterion.c index c14fb23c..9b129bb1 100644 --- a/plugins/cinterion/mm-broadband-modem-qmi-cinterion.c +++ b/plugins/cinterion/mm-broadband-modem-qmi-cinterion.c @@ -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); } diff --git a/plugins/foxconn/mm-broadband-modem-foxconn-t77w968.c b/plugins/foxconn/mm-broadband-modem-foxconn-t77w968.c index 95db6ee7..61787c64 100644 --- a/plugins/foxconn/mm-broadband-modem-foxconn-t77w968.c +++ b/plugins/foxconn/mm-broadband-modem-foxconn-t77w968.c @@ -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, diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c index 2c341d3e..018cbd1e 100644 --- a/plugins/huawei/mm-broadband-modem-huawei.c +++ b/plugins/huawei/mm-broadband-modem-huawei.c @@ -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); } diff --git a/plugins/icera/mm-broadband-modem-icera.c b/plugins/icera/mm-broadband-modem-icera.c index ebaac9ad..080b1ca2 100644 --- a/plugins/icera/mm-broadband-modem-icera.c +++ b/plugins/icera/mm-broadband-modem-icera.c @@ -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); } diff --git a/plugins/iridium/mm-broadband-modem-iridium.c b/plugins/iridium/mm-broadband-modem-iridium.c index bef4a347..681d9123 100644 --- a/plugins/iridium/mm-broadband-modem-iridium.c +++ b/plugins/iridium/mm-broadband-modem-iridium.c @@ -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 */ diff --git a/plugins/linktop/mm-broadband-modem-linktop.c b/plugins/linktop/mm-broadband-modem-linktop.c index 9f42cdda..a83682c8 100644 --- a/plugins/linktop/mm-broadband-modem-linktop.c +++ b/plugins/linktop/mm-broadband-modem-linktop.c @@ -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); } diff --git a/plugins/longcheer/mm-broadband-modem-longcheer.c b/plugins/longcheer/mm-broadband-modem-longcheer.c index f158bc41..0926de2c 100644 --- a/plugins/longcheer/mm-broadband-modem-longcheer.c +++ b/plugins/longcheer/mm-broadband-modem-longcheer.c @@ -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); } diff --git a/plugins/mbm/mm-broadband-modem-mbm.c b/plugins/mbm/mm-broadband-modem-mbm.c index 49f94213..fbc9830c 100644 --- a/plugins/mbm/mm-broadband-modem-mbm.c +++ b/plugins/mbm/mm-broadband-modem-mbm.c @@ -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); } diff --git a/plugins/motorola/mm-broadband-modem-motorola.c b/plugins/motorola/mm-broadband-modem-motorola.c index 10d04d81..8ebd2114 100644 --- a/plugins/motorola/mm-broadband-modem-motorola.c +++ b/plugins/motorola/mm-broadband-modem-motorola.c @@ -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); } diff --git a/plugins/mtk/mm-broadband-modem-mtk.c b/plugins/mtk/mm-broadband-modem-mtk.c index 5439b524..131f8daa 100644 --- a/plugins/mtk/mm-broadband-modem-mtk.c +++ b/plugins/mtk/mm-broadband-modem-mtk.c @@ -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); } diff --git a/plugins/nokia/mm-broadband-modem-nokia.c b/plugins/nokia/mm-broadband-modem-nokia.c index 55af164e..fd608868 100644 --- a/plugins/nokia/mm-broadband-modem-nokia.c +++ b/plugins/nokia/mm-broadband-modem-nokia.c @@ -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); } diff --git a/plugins/novatel/mm-broadband-modem-novatel-lte.c b/plugins/novatel/mm-broadband-modem-novatel-lte.c index df331381..19d1c594 100644 --- a/plugins/novatel/mm-broadband-modem-novatel-lte.c +++ b/plugins/novatel/mm-broadband-modem-novatel-lte.c @@ -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); } diff --git a/plugins/novatel/mm-broadband-modem-novatel.c b/plugins/novatel/mm-broadband-modem-novatel.c index aeec7873..1cc3d00f 100644 --- a/plugins/novatel/mm-broadband-modem-novatel.c +++ b/plugins/novatel/mm-broadband-modem-novatel.c @@ -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); } diff --git a/plugins/option/mm-broadband-modem-hso.c b/plugins/option/mm-broadband-modem-hso.c index 00899446..8f280c3a 100644 --- a/plugins/option/mm-broadband-modem-hso.c +++ b/plugins/option/mm-broadband-modem-hso.c @@ -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); } diff --git a/plugins/option/mm-broadband-modem-option.c b/plugins/option/mm-broadband-modem-option.c index b266dac5..6ab34e95 100644 --- a/plugins/option/mm-broadband-modem-option.c +++ b/plugins/option/mm-broadband-modem-option.c @@ -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); } diff --git a/plugins/pantech/mm-broadband-modem-pantech.c b/plugins/pantech/mm-broadband-modem-pantech.c index bc35b287..4e8b58e0 100644 --- a/plugins/pantech/mm-broadband-modem-pantech.c +++ b/plugins/pantech/mm-broadband-modem-pantech.c @@ -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); } diff --git a/plugins/qcom-soc/mm-broadband-modem-qmi-qcom-soc.c b/plugins/qcom-soc/mm-broadband-modem-qmi-qcom-soc.c index 02569037..6adc6336 100644 --- a/plugins/qcom-soc/mm-broadband-modem-qmi-qcom-soc.c +++ b/plugins/qcom-soc/mm-broadband-modem-qmi-qcom-soc.c @@ -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); } diff --git a/plugins/quectel/mm-broadband-modem-qmi-quectel.c b/plugins/quectel/mm-broadband-modem-qmi-quectel.c index 9548c46c..a6bc114e 100644 --- a/plugins/quectel/mm-broadband-modem-qmi-quectel.c +++ b/plugins/quectel/mm-broadband-modem-qmi-quectel.c @@ -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); } diff --git a/plugins/quectel/mm-broadband-modem-quectel.c b/plugins/quectel/mm-broadband-modem-quectel.c index ae2b7234..795ce410 100644 --- a/plugins/quectel/mm-broadband-modem-quectel.c +++ b/plugins/quectel/mm-broadband-modem-quectel.c @@ -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); } diff --git a/plugins/samsung/mm-broadband-modem-samsung.c b/plugins/samsung/mm-broadband-modem-samsung.c index b0eb17be..1ffc178f 100644 --- a/plugins/samsung/mm-broadband-modem-samsung.c +++ b/plugins/samsung/mm-broadband-modem-samsung.c @@ -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); diff --git a/plugins/sierra/mm-broadband-modem-sierra-icera.c b/plugins/sierra/mm-broadband-modem-sierra-icera.c index 796260d9..c7dfcf81 100644 --- a/plugins/sierra/mm-broadband-modem-sierra-icera.c +++ b/plugins/sierra/mm-broadband-modem-sierra-icera.c @@ -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); } diff --git a/plugins/sierra/mm-broadband-modem-sierra.c b/plugins/sierra/mm-broadband-modem-sierra.c index 7e2dba9b..3316c99f 100644 --- a/plugins/sierra/mm-broadband-modem-sierra.c +++ b/plugins/sierra/mm-broadband-modem-sierra.c @@ -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); } diff --git a/plugins/simtech/mm-broadband-modem-qmi-simtech.c b/plugins/simtech/mm-broadband-modem-qmi-simtech.c index 72959605..27bb0795 100644 --- a/plugins/simtech/mm-broadband-modem-qmi-simtech.c +++ b/plugins/simtech/mm-broadband-modem-qmi-simtech.c @@ -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); } diff --git a/plugins/simtech/mm-broadband-modem-simtech.c b/plugins/simtech/mm-broadband-modem-simtech.c index c95cffd2..2ca0c6ae 100644 --- a/plugins/simtech/mm-broadband-modem-simtech.c +++ b/plugins/simtech/mm-broadband-modem-simtech.c @@ -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); } diff --git a/plugins/telit/mm-broadband-modem-mbim-telit.c b/plugins/telit/mm-broadband-modem-mbim-telit.c index 1a2c3866..fb1ac8c5 100644 --- a/plugins/telit/mm-broadband-modem-mbim-telit.c +++ b/plugins/telit/mm-broadband-modem-mbim-telit.c @@ -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); diff --git a/plugins/telit/mm-broadband-modem-telit.c b/plugins/telit/mm-broadband-modem-telit.c index daa7bddd..35900c9f 100644 --- a/plugins/telit/mm-broadband-modem-telit.c +++ b/plugins/telit/mm-broadband-modem-telit.c @@ -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); diff --git a/plugins/thuraya/mm-broadband-modem-thuraya.c b/plugins/thuraya/mm-broadband-modem-thuraya.c index a4013410..92c8a8a2 100644 --- a/plugins/thuraya/mm-broadband-modem-thuraya.c +++ b/plugins/thuraya/mm-broadband-modem-thuraya.c @@ -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); } diff --git a/plugins/ublox/mm-broadband-modem-ublox.c b/plugins/ublox/mm-broadband-modem-ublox.c index 0af2e93d..2ae152fc 100644 --- a/plugins/ublox/mm-broadband-modem-ublox.c +++ b/plugins/ublox/mm-broadband-modem-ublox.c @@ -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); } diff --git a/plugins/via/mm-broadband-modem-via.c b/plugins/via/mm-broadband-modem-via.c index 24ea6d00..6a8b4508 100644 --- a/plugins/via/mm-broadband-modem-via.c +++ b/plugins/via/mm-broadband-modem-via.c @@ -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); } diff --git a/plugins/wavecom/mm-broadband-modem-wavecom.c b/plugins/wavecom/mm-broadband-modem-wavecom.c index 43919edf..8659e1c4 100644 --- a/plugins/wavecom/mm-broadband-modem-wavecom.c +++ b/plugins/wavecom/mm-broadband-modem-wavecom.c @@ -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); } diff --git a/plugins/x22x/mm-broadband-modem-x22x.c b/plugins/x22x/mm-broadband-modem-x22x.c index dcd1addb..c4744262 100644 --- a/plugins/x22x/mm-broadband-modem-x22x.c +++ b/plugins/x22x/mm-broadband-modem-x22x.c @@ -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); } diff --git a/plugins/xmm/mm-broadband-modem-mbim-xmm.c b/plugins/xmm/mm-broadband-modem-mbim-xmm.c index 4a6cd93d..381432f3 100644 --- a/plugins/xmm/mm-broadband-modem-mbim-xmm.c +++ b/plugins/xmm/mm-broadband-modem-mbim-xmm.c @@ -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, diff --git a/plugins/xmm/mm-broadband-modem-xmm.c b/plugins/xmm/mm-broadband-modem-xmm.c index 35103d8b..7698ec66 100644 --- a/plugins/xmm/mm-broadband-modem-xmm.c +++ b/plugins/xmm/mm-broadband-modem-xmm.c @@ -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); } diff --git a/plugins/zte/mm-broadband-modem-zte-icera.c b/plugins/zte/mm-broadband-modem-zte-icera.c index c0befa5b..66aea942 100644 --- a/plugins/zte/mm-broadband-modem-zte-icera.c +++ b/plugins/zte/mm-broadband-modem-zte-icera.c @@ -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); } diff --git a/plugins/zte/mm-broadband-modem-zte.c b/plugins/zte/mm-broadband-modem-zte.c index 08bbed83..13a491fe 100644 --- a/plugins/zte/mm-broadband-modem-zte.c +++ b/plugins/zte/mm-broadband-modem-zte.c @@ -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); } diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index 72b9b849..ab41667b 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -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]); } diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h index 11c3993c..7b70ad34 100644 --- a/src/mm-base-modem.h +++ b/src/mm-base-modem.h @@ -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; diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 4ee5b226..c810f331 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -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, diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index d193f07d..71607f50 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -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); } diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index a25883ac..66320c63 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -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); } |