diff options
-rw-r--r-- | plugins/intel/mm-broadband-modem-mbim-intel.c | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/plugins/intel/mm-broadband-modem-mbim-intel.c b/plugins/intel/mm-broadband-modem-mbim-intel.c index c58adeb6..6c263c30 100644 --- a/plugins/intel/mm-broadband-modem-mbim-intel.c +++ b/plugins/intel/mm-broadband-modem-mbim-intel.c @@ -41,6 +41,35 @@ G_DEFINE_TYPE_EXTENDED (MMBroadbandModemMbimIntel, mm_broadband_modem_mbim_intel /*****************************************************************************/ +static void +setup_ports (MMBroadbandModem *self) +{ + MMPortSerialAt *ports[3]; + guint i; + + /* Run the shared XMM port setup logic */ + mm_shared_xmm_setup_ports (self); + + ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)); + ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self)); + + /* GNSS control port may or may not be a primary/secondary port */ + ports[2] = mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self)); + if (ports[2] && ((ports[2] == ports[0]) || (ports[2] == ports[1]))) + ports[2] = NULL; + + for (i = 0; i < G_N_ELEMENTS (ports); i++) { + if (!ports[i]) + continue; + + g_object_set (ports[i], + MM_PORT_SERIAL_SEND_DELAY, (guint64) 0, + NULL); + } +} + +/*****************************************************************************/ + MMBroadbandModemMbimIntel * mm_broadband_modem_mbim_intel_new (const gchar *device, const gchar **drivers, @@ -112,5 +141,5 @@ mm_broadband_modem_mbim_intel_class_init (MMBroadbandModemMbimIntelClass *klass) { MMBroadbandModemClass *broadband_modem_class = MM_BROADBAND_MODEM_CLASS (klass); - broadband_modem_class->setup_ports = mm_shared_xmm_setup_ports; + broadband_modem_class->setup_ports = setup_ports; } |