aboutsummaryrefslogtreecommitdiff
path: root/src/mm-plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-plugin.c')
-rw-r--r--src/mm-plugin.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/mm-plugin.c b/src/mm-plugin.c
index 75dc02d7..4ec043a3 100644
--- a/src/mm-plugin.c
+++ b/src/mm-plugin.c
@@ -749,6 +749,16 @@ mm_plugin_supports_port_finish (MMPlugin *self,
return (MMPluginSupportsResult)value;
}
+static const MMStringUintMap subsys_flags_map[] = {
+ { "tty", MM_PORT_PROBE_AT | MM_PORT_PROBE_QCDM },
+ { "usbmisc", MM_PORT_PROBE_QMI | MM_PORT_PROBE_MBIM | MM_PORT_PROBE_AT },
+ { "rpmsg", MM_PORT_PROBE_AT | MM_PORT_PROBE_QMI },
+ { "wwan", MM_PORT_PROBE_QMI | MM_PORT_PROBE_MBIM | MM_PORT_PROBE_AT | MM_PORT_PROBE_QCDM },
+#if defined WITH_QRTR
+ { "qrtr", MM_PORT_PROBE_QMI },
+#endif
+};
+
void
mm_plugin_supports_port (MMPlugin *self,
MMDevice *device,
@@ -803,19 +813,10 @@ mm_plugin_supports_port (MMPlugin *self,
}
/* Build mask of flags based on subsystem */
- subsystem_expected_flags = MM_PORT_PROBE_NONE;
- if (g_str_equal (mm_kernel_device_get_subsystem (port), "tty"))
- subsystem_expected_flags |= (MM_PORT_PROBE_AT | MM_PORT_PROBE_QCDM);
- else if (g_str_equal (mm_kernel_device_get_subsystem (port), "usbmisc"))
- subsystem_expected_flags |= (MM_PORT_PROBE_QMI | MM_PORT_PROBE_MBIM | MM_PORT_PROBE_AT);
- else if (g_str_equal (mm_kernel_device_get_subsystem (port), "rpmsg"))
- subsystem_expected_flags |= (MM_PORT_PROBE_AT | MM_PORT_PROBE_QMI);
- else if (g_str_equal (mm_kernel_device_get_subsystem (port), "wwan"))
- subsystem_expected_flags |= (MM_PORT_PROBE_QMI | MM_PORT_PROBE_MBIM | MM_PORT_PROBE_AT | MM_PORT_PROBE_QCDM);
-#if defined WITH_QRTR
- else if (g_str_equal (mm_kernel_device_get_subsystem (port), "qrtr"))
- subsystem_expected_flags |= MM_PORT_PROBE_QMI;
-#endif
+ subsystem_expected_flags = mm_string_uint_map_lookup (subsys_flags_map,
+ G_N_ELEMENTS (subsys_flags_map),
+ mm_kernel_device_get_subsystem (port),
+ MM_PORT_PROBE_NONE);
/* Build mask of flags based on plugin */
plugin_expected_flags = MM_PORT_PROBE_NONE;