aboutsummaryrefslogtreecommitdiff
path: root/src/mm-port-probe.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-10-21 13:02:50 +0200
committerAleksander Morgado <aleksander@aleksander.es>2020-11-09 17:58:40 +0100
commit5aa7632e88f70f678b4d88d3bab6d4b1b2def1d1 (patch)
tree5ddb9ebc096a8fdb39caecc2c48b8d8bbdfc89ca /src/mm-port-probe.c
parent50c69d540341733dfee031282e5d8e18ebc814cb (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.c82
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);