diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-10-21 13:02:50 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-11-09 17:58:40 +0100 |
commit | 5aa7632e88f70f678b4d88d3bab6d4b1b2def1d1 (patch) | |
tree | 5ddb9ebc096a8fdb39caecc2c48b8d8bbdfc89ca /src/mm-port-probe.c | |
parent | 50c69d540341733dfee031282e5d8e18ebc814cb (diff) |
port-probe: avoid subsystem based checks when reading probe results
There should be no need to do an early check to filter out ports of
the wrong subsystem.
For the user of these methods it is irrelevant if the FALSE is
returned because the port is of the wrong subsystem, or because the
test wasn't added to be probed, or because the test actually failed.
In other words, the ports where the test succeeded will only have
succeeded if they are of the correct subsystem and if the test was
actually executed successfully.
Diffstat (limited to 'src/mm-port-probe.c')
-rw-r--r-- | src/mm-port-probe.c | 82 |
1 files changed, 13 insertions, 69 deletions
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c index 0c1edef1..947be83b 100644 --- a/src/mm-port-probe.c +++ b/src/mm-port-probe.c @@ -1543,18 +1543,8 @@ mm_port_probe_list_has_at_port (GList *list) gboolean mm_port_probe_is_qcdm (MMPortProbe *self) { - const gchar *subsys; - const gchar *name; - g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE); - subsys = mm_kernel_device_get_subsystem (self->priv->port); - name = mm_kernel_device_get_name (self->priv->port); - if (g_str_equal (subsys, "net") || - (g_str_has_prefix (subsys, "usb") && - g_str_has_prefix (name, "cdc-wdm"))) - return FALSE; - return (self->priv->flags & MM_PORT_PROBE_QCDM ? self->priv->is_qcdm : FALSE); @@ -1563,19 +1553,11 @@ mm_port_probe_is_qcdm (MMPortProbe *self) gboolean mm_port_probe_is_qmi (MMPortProbe *self) { - const gchar *subsys; - const gchar *name; - g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE); - subsys = mm_kernel_device_get_subsystem (self->priv->port); - name = mm_kernel_device_get_name (self->priv->port); - if (!g_str_has_prefix (subsys, "usb") || - !name || - !g_str_has_prefix (name, "cdc-wdm")) - return FALSE; - - return self->priv->is_qmi; + return (self->priv->flags & MM_PORT_PROBE_QMI ? + self->priv->is_qmi : + FALSE); } gboolean @@ -1597,19 +1579,11 @@ mm_port_probe_list_has_qmi_port (GList *list) gboolean mm_port_probe_is_mbim (MMPortProbe *self) { - const gchar *subsys; - const gchar *name; - g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE); - subsys = mm_kernel_device_get_subsystem (self->priv->port); - name = mm_kernel_device_get_name (self->priv->port); - if (!g_str_has_prefix (subsys, "usb") || - !name || - !g_str_has_prefix (name, "cdc-wdm")) - return FALSE; - - return self->priv->is_mbim; + return (self->priv->flags & MM_PORT_PROBE_MBIM ? + self->priv->is_mbim : + FALSE); } gboolean @@ -1640,21 +1614,17 @@ mm_port_probe_get_port_type (MMPortProbe *self) if (g_str_equal (subsys, "net")) return MM_PORT_TYPE_NET; - if (g_str_has_prefix (subsys, "usb")) { - const gchar *name; - - name = mm_kernel_device_get_name (self->priv->port); - if (g_str_has_prefix (name, "cdc-wdm")) { #if defined WITH_QMI - if (self->priv->is_qmi) - return MM_PORT_TYPE_QMI; + if (self->priv->flags & MM_PORT_PROBE_QMI && + self->priv->is_qmi) + return MM_PORT_TYPE_QMI; #endif + #if defined WITH_MBIM - if (self->priv->is_mbim) - return MM_PORT_TYPE_MBIM; + if (self->priv->flags & MM_PORT_PROBE_MBIM && + self->priv->is_mbim) + return MM_PORT_TYPE_MBIM; #endif - } - } if (self->priv->flags & MM_PORT_PROBE_QCDM && self->priv->is_qcdm) @@ -1708,18 +1678,8 @@ mm_port_probe_get_port (MMPortProbe *self) const gchar * mm_port_probe_get_vendor (MMPortProbe *self) { - const gchar *subsys; - const gchar *name; - g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE); - subsys = mm_kernel_device_get_subsystem (self->priv->port); - name = mm_kernel_device_get_name (self->priv->port); - if (g_str_equal (subsys, "net") || - (g_str_has_prefix (subsys, "usb") && - g_str_has_prefix (name, "cdc-wdm"))) - return NULL; - return (self->priv->flags & MM_PORT_PROBE_AT_VENDOR ? self->priv->vendor : NULL); @@ -1728,18 +1688,8 @@ mm_port_probe_get_vendor (MMPortProbe *self) const gchar * mm_port_probe_get_product (MMPortProbe *self) { - const gchar *subsys; - const gchar *name; - g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE); - subsys = mm_kernel_device_get_subsystem (self->priv->port); - name = mm_kernel_device_get_name (self->priv->port); - if (g_str_equal (subsys, "net") || - (g_str_has_prefix (subsys, "usb") && - g_str_has_prefix (name, "cdc-wdm"))) - return NULL; - return (self->priv->flags & MM_PORT_PROBE_AT_PRODUCT ? self->priv->product : NULL); @@ -1750,9 +1700,6 @@ mm_port_probe_is_icera (MMPortProbe *self) { g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE); - if (g_str_equal (mm_kernel_device_get_subsystem (self->priv->port), "net")) - return FALSE; - return (self->priv->flags & MM_PORT_PROBE_AT_ICERA ? self->priv->is_icera : FALSE); @@ -1776,9 +1723,6 @@ mm_port_probe_is_xmm (MMPortProbe *self) { g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE); - if (g_str_equal (mm_kernel_device_get_subsystem (self->priv->port), "net")) - return FALSE; - return (self->priv->flags & MM_PORT_PROBE_AT_XMM ? self->priv->is_xmm : FALSE); |