aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Gerhold <stephan.gerhold@kernkonzept.com>2022-08-11 15:50:17 +0200
committerStephan Gerhold <stephan.gerhold@kernkonzept.com>2022-08-18 15:35:35 +0200
commit23c027a7a9b916aabc82e70d922b727aa70af89a (patch)
treee03d2759013f311b389df167cfe90759aaa1f3ee
parent4ab459109d558f5149062a0639e880482c61274f (diff)
broadband-modem-qmi: split up peek_port_qmi_for_data()
peek_port_qmi_for_data() is currently quite confusing to read because it mostly covers qmi_wwan while the mhi_net case returns early. Split this up into separate functions per driver to make it less confusing, similar to the variant in mm-broadband-modem-qmi-qcom-soc. No functional change.
-rw-r--r--src/mm-broadband-modem-qmi.c64
1 files changed, 42 insertions, 22 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index 5a347e64..75c07dd8 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -262,33 +262,24 @@ mm_broadband_modem_qmi_get_port_qmi_for_data (MMBroadbandModemQmi *self,
}
static MMPortQmi *
-peek_port_qmi_for_data (MMBroadbandModemQmi *self,
- MMPort *data,
- QmiSioPort *out_sio_port,
- GError **error)
+peek_port_qmi_for_data_mhi (MMBroadbandModemQmi *self,
+ MMPort *data,
+ QmiSioPort *out_sio_port,
+ GError **error)
+{
+ return mm_broadband_modem_qmi_peek_port_qmi (self);
+}
+
+static MMPortQmi *
+peek_port_qmi_for_data_usb (MMBroadbandModemQmi *self,
+ MMPort *data,
+ QmiSioPort *out_sio_port,
+ GError **error)
{
GList *cdc_wdm_qmi_ports;
GList *l;
const gchar *net_port_parent_path;
MMPortQmi *found = NULL;
- const gchar *net_port_driver;
-
- g_assert (MM_IS_BROADBAND_MODEM_QMI (self));
- g_assert (mm_port_get_subsys (data) == MM_PORT_SUBSYS_NET);
-
- net_port_driver = mm_kernel_device_get_driver (mm_port_peek_kernel_device (data));
- if (g_strcmp0 (net_port_driver, "qmi_wwan") != 0 && g_strcmp0 (net_port_driver, "mhi_net")) {
- g_set_error (error,
- MM_CORE_ERROR,
- MM_CORE_ERROR_FAILED,
- "Unsupported QMI kernel driver for 'net/%s': %s",
- mm_port_get_device (data),
- net_port_driver);
- return NULL;
- }
-
- if (!g_strcmp0 (net_port_driver, "mhi_net"))
- return mm_broadband_modem_qmi_peek_port_qmi (self);
net_port_parent_path = mm_kernel_device_get_interface_sysfs_path (mm_port_peek_kernel_device (data));
if (!net_port_parent_path) {
@@ -327,6 +318,35 @@ peek_port_qmi_for_data (MMBroadbandModemQmi *self,
return found;
}
+
+static MMPortQmi *
+peek_port_qmi_for_data (MMBroadbandModemQmi *self,
+ MMPort *data,
+ QmiSioPort *out_sio_port,
+ GError **error)
+{
+ const gchar *net_port_driver;
+
+ g_assert (MM_IS_BROADBAND_MODEM_QMI (self));
+ g_assert (mm_port_get_subsys (data) == MM_PORT_SUBSYS_NET);
+
+ net_port_driver = mm_kernel_device_get_driver (mm_port_peek_kernel_device (data));
+
+ if (!g_strcmp0 (net_port_driver, "qmi_wwan"))
+ return peek_port_qmi_for_data_usb (self, data, out_sio_port, error);
+
+ if (!g_strcmp0 (net_port_driver, "mhi_net"))
+ return peek_port_qmi_for_data_mhi (self, data, out_sio_port, error);
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_FAILED,
+ "Unsupported QMI kernel driver for 'net/%s': %s",
+ mm_port_get_device (data),
+ net_port_driver);
+ return NULL;
+}
+
MMPortQmi *
mm_broadband_modem_qmi_peek_port_qmi_for_data (MMBroadbandModemQmi *self,
MMPort *data,