diff options
Diffstat (limited to 'plugins/sierra/mm-common-sierra.c')
-rw-r--r-- | plugins/sierra/mm-common-sierra.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/plugins/sierra/mm-common-sierra.c b/plugins/sierra/mm-common-sierra.c index 6394bd16..0d06144b 100644 --- a/plugins/sierra/mm-common-sierra.c +++ b/plugins/sierra/mm-common-sierra.c @@ -159,3 +159,35 @@ mm_common_sierra_create_sim (MMIfaceModem *self, callback, user_data); } + +/*****************************************************************************/ +/* Setup ports */ + +void +mm_common_sierra_setup_ports (MMBroadbandModem *self) +{ + MMAtSerialPort *ports[2]; + guint i; + GRegex *pacsp0_regex; + + pacsp0_regex = g_regex_new ("\\r\\n\\+PACSP0\\r\\n", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); + + ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)); + ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self)); + + for (i = 0; i < 2; i++) { + if (!ports[i]) + continue; + + g_object_set (ports[i], + MM_PORT_CARRIER_DETECT, FALSE, + NULL); + + mm_at_serial_port_add_unsolicited_msg_handler ( + ports[i], + pacsp0_regex, + NULL, NULL, NULL); + } + + g_regex_unref (pacsp0_regex); +} |