diff options
-rw-r--r-- | plugins/telit/mm-common-telit.c | 19 |
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, |