From f19f20c00824a2436e7f6536f0ff278d4b83a4e4 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Thu, 12 Sep 2024 12:28:10 -0500 Subject: helpers: consolidate some uses of mm_kernel_device_get_subsystem() Signed-off-by: Dan Williams --- src/mm-plugin.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'src/mm-plugin.c') 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; -- cgit v1.2.3-70-g09d2