aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-03-10 12:05:31 +0100
committerAleksander Morgado <aleksander@aleksander.es>2021-03-10 15:18:00 +0100
commit791c7908e48c4acfc8ebfe36ae66714c89bf028c (patch)
treeb5fa85966cc0a1283c8222af3c0780450c11fa1f /src/mm-base-modem.c
parent4f4ce02c434423afbea81679d62cf9ecc09b6599 (diff)
port-qmi: initialize net port driver information early
The MMPortQmi may need to know very early what kind of net ports are going to be used later on during connection, e.g. to decide what kind of multiplexing capabilities are available and such. So, once we have organized ports in the modem, we'll take the driver of the first network port in the list of data ports, and pass it down to all QMI ports setup in the modem object.
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r--src/mm-base-modem.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 54e28b0d..bb2e51dd 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -1440,6 +1440,16 @@ mm_base_modem_organize_ports (MMBaseModem *self,
#if defined WITH_QMI
if (qmi) {
+ /* The first item in the data list must be a net port, because
+ * QMI modems only expect net ports */
+ g_assert (MM_IS_PORT_NET (self->priv->data->data));
+ /* let the MMPortQmi know which net driver is being used, taken
+ * from the first item in the net port list */
+ g_list_foreach (qmi,
+ (GFunc)mm_port_qmi_set_net_driver,
+ (gpointer) mm_kernel_device_get_driver (
+ mm_port_peek_kernel_device (
+ MM_PORT (self->priv->data->data))));
g_list_foreach (qmi, (GFunc)g_object_ref, NULL);
self->priv->qmi = qmi;
}