diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2022-02-10 11:15:25 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-03-07 09:51:43 +0000 |
commit | 84e22e9b9869619abb5b6971c4b0bf36982a9e01 (patch) | |
tree | 3d1137a86a8167c3ebed5f97c1f340a8bb7ddbe4 | |
parent | 671164a64fcc1d8d005ba6c572945eb90690f7f2 (diff) |
intel: custom setup for all available AT ports
Fully disable send delay as we're using AT ports via the new WWAN subsystem.
-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; } |