aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2023-12-18 09:21:39 +0000
committerAleksander Morgado <aleksander@aleksander.es>2024-01-25 13:45:14 +0000
commit910e450ea7189bcd726d94374458867bfb15576d (patch)
tree494530b7e91241457d8edfa1eb7184a4ce2c58aa /src
parent99f520269b6d3d3b081e58c4c91a8cd0a336c8f5 (diff)
port-qmi: use a single method to set all initial net port details
Diffstat (limited to 'src')
-rw-r--r--src/mm-base-modem.c12
-rw-r--r--src/mm-port-qmi.c26
-rw-r--r--src/mm-port-qmi.h7
3 files changed, 17 insertions, 28 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index e02be984..aaf67573 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -1633,16 +1633,8 @@ mm_base_modem_organize_ports (MMBaseModem *self,
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)mm_port_qmi_set_net_sysfs_path,
- (gpointer) mm_kernel_device_get_sysfs_path (
- mm_port_peek_kernel_device (
- MM_PORT (self->priv->data->data))));
+ g_list_foreach (qmi, (GFunc)mm_port_qmi_set_net_details, (gpointer) MM_PORT (self->priv->data->data));
+
g_list_foreach (qmi, (GFunc)g_object_ref, NULL);
self->priv->qmi = g_steal_pointer (&qmi);
}
diff --git a/src/mm-port-qmi.c b/src/mm-port-qmi.c
index 7f8ec967..2c608e96 100644
--- a/src/mm-port-qmi.c
+++ b/src/mm-port-qmi.c
@@ -2652,26 +2652,26 @@ mm_port_qmi_is_open (MMPortQmi *self)
}
/*****************************************************************************/
+/* Sets network details that the QMI port should be aware of before even
+ * a data connection is started. */
void
-mm_port_qmi_set_net_driver (MMPortQmi *self,
- const gchar *net_driver)
+mm_port_qmi_set_net_details (MMPortQmi *self,
+ MMPort *first_net)
{
- g_assert (MM_IS_PORT_QMI (self));
- g_assert (!self->priv->net_driver);
- self->priv->net_driver = g_strdup (net_driver);
- initialize_endpoint_info (self);
-}
+ MMKernelDevice *first_net_dev;
-/*****************************************************************************/
+ first_net_dev = mm_port_peek_kernel_device (first_net);
-void
-mm_port_qmi_set_net_sysfs_path (MMPortQmi *self,
- const gchar *net_sysfs_path)
-{
g_assert (MM_IS_PORT_QMI (self));
+
+ g_assert (!self->priv->net_driver);
+ self->priv->net_driver = g_strdup (mm_kernel_device_get_driver (first_net_dev));
+
g_assert (!self->priv->net_sysfs_path);
- self->priv->net_sysfs_path = g_strdup (net_sysfs_path);
+ self->priv->net_sysfs_path = g_strdup (mm_kernel_device_get_sysfs_path (first_net_dev));
+
+ initialize_endpoint_info (self);
}
/*****************************************************************************/
diff --git a/src/mm-port-qmi.h b/src/mm-port-qmi.h
index 5c8e899f..148067fa 100644
--- a/src/mm-port-qmi.h
+++ b/src/mm-port-qmi.h
@@ -88,11 +88,8 @@ gboolean mm_port_qmi_close_finish (MMPortQmi *self,
GAsyncResult *res,
GError **error);
-void mm_port_qmi_set_net_driver (MMPortQmi *self,
- const gchar *net_driver);
-
-void mm_port_qmi_set_net_sysfs_path (MMPortQmi *self,
- const gchar *net_sysfs_path);
+void mm_port_qmi_set_net_details (MMPortQmi *self,
+ MMPort *first_net);
typedef enum {
MM_PORT_QMI_FLAG_DEFAULT = 0,