aboutsummaryrefslogtreecommitdiff
path: root/src/mm-plugin.c
diff options
context:
space:
mode:
authorDan Williams <dan@ioncontrol.co>2024-09-12 12:28:10 -0500
committerDan Williams <dan@ioncontrol.co>2024-09-17 12:20:46 -0500
commitf19f20c00824a2436e7f6536f0ff278d4b83a4e4 (patch)
treef9be96e8884235dc155f9ba40d9837ebad1a156e /src/mm-plugin.c
parent0b5f2adb4b078b305604b1f9b785289e279c5164 (diff)
helpers: consolidate some uses of mm_kernel_device_get_subsystem()
Signed-off-by: Dan Williams <dan@ioncontrol.co>
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;