aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/telit/mm-common-telit.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/plugins/telit/mm-common-telit.c b/plugins/telit/mm-common-telit.c
index 78530c42..3f2cce5c 100644
--- a/plugins/telit/mm-common-telit.c
+++ b/plugins/telit/mm-common-telit.c
@@ -84,11 +84,22 @@ telit_grab_port (MMPlugin *self,
} else
ptype = MM_PORT_TYPE_IGNORED;
} else {
- /* If the port was tagged by the udev rules but isn't a primary or secondary,
- * then ignore it to guard against race conditions if a device just happens
- * to show up with more than two AT-capable ports.
+ /* If the port isn't explicitly tagged as primary, secondary, or gps
+ * port, we will fallback to flagging it as secondary, but only if it
+ * probed AT successfully.
+ *
+ * This is so that we support the case where a single TTY is exposed
+ * by the modem and no explicit port type hint is specified.
+ *
+ * From the modem point of view, only the AT_FLAG_PRIMARY would be
+ * important, as that is the port that would end up getting used for PPP
+ * in this case, so having multiple secondary ports, if that ever
+ * happened, wouldn't be an issue.
*/
- ptype = MM_PORT_TYPE_IGNORED;
+ if (mm_port_probe_is_at (probe))
+ pflags = MM_PORT_SERIAL_AT_FLAG_SECONDARY;
+ else
+ ptype = MM_PORT_TYPE_IGNORED;
}
return mm_base_modem_grab_port (modem,