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.
This commit is contained in:
Stephan Gerhold
2022-08-11 15:50:17 +02:00
parent 4ab459109d
commit 23c027a7a9

View File

@@ -262,7 +262,16 @@ mm_broadband_modem_qmi_get_port_qmi_for_data (MMBroadbandModemQmi *self,
}
static MMPortQmi *
peek_port_qmi_for_data (MMBroadbandModemQmi *self,
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)
@@ -271,24 +280,6 @@ peek_port_qmi_for_data (MMBroadbandModemQmi *self,
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,