aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2019-09-16 17:41:42 +0200
committerAleksander Morgado <aleksander@aleksander.es>2019-10-11 09:24:22 +0000
commitc98a1a9dc8e02b78ae23de354f441270dfb394c1 (patch)
tree9cbde13c91169aa9f58bdc03398ada5123939aaa /src
parentfeb6c8264a0b1bb4c68a5dd6cd115b665b982392 (diff)
simtech: disable CMER/CIND support explicitly
The logic to setup the generic +CIND indications in the SIM7600E seems to end up breaking connectivity when in TTY+PPP mode. If we issue the AT+CMER=3,0,0,1 command, this will end up in the modem not replying a correct CONNECT response to the ATD command. Let's disable these +CIND indications completely in the simtech plugin, as there is even no AT command reference saying those are supported. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/144
Diffstat (limited to 'src')
-rw-r--r--src/mm-broadband-modem.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 173c601a..0afca140 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -2207,7 +2207,8 @@ modem_load_signal_quality (MMIfaceModem *_self,
/* Check whether we can get a non-connected AT port */
ctx->at_port = (MMPortSerial *)mm_base_modem_get_best_at_port (MM_BASE_MODEM (self), &error);
if (ctx->at_port) {
- if (self->priv->modem_cind_supported &&
+ if (!self->priv->modem_cind_disabled &&
+ self->priv->modem_cind_supported &&
CIND_INDICATOR_IS_VALID (self->priv->modem_cind_indicator_signal_quality))
signal_quality_cind (task);
else
@@ -3189,7 +3190,7 @@ check_and_setup_3gpp_urc_support (GTask *task)
self = g_task_get_source_object (task);
/* Check support for +CIEV indications, managed with +CIND/+CMER */
- if (!self->priv->modem_cind_support_checked) {
+ if (!self->priv->modem_cind_disabled && !self->priv->modem_cind_support_checked) {
mm_dbg ("Checking indicator support...");
self->priv->modem_cind_support_checked = TRUE;
mm_base_modem_at_command (MM_BASE_MODEM (self),
@@ -3238,7 +3239,7 @@ modem_3gpp_cleanup_unsolicited_events (MMIfaceModem3gpp *_self,
task = g_task_new (self, NULL, callback, user_data);
- if (self->priv->modem_cind_support_checked && self->priv->modem_cind_supported)
+ if (!self->priv->modem_cind_disabled && self->priv->modem_cind_support_checked && self->priv->modem_cind_supported)
set_ciev_unsolicited_events_handlers (self, FALSE);
if (self->priv->modem_cgerep_supported)