aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2022-02-10 11:15:25 +0100
committerAleksander Morgado <aleksander@aleksander.es>2022-03-07 09:51:43 +0000
commit84e22e9b9869619abb5b6971c4b0bf36982a9e01 (patch)
tree3d1137a86a8167c3ebed5f97c1f340a8bb7ddbe4
parent671164a64fcc1d8d005ba6c572945eb90690f7f2 (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.c31
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;
}