diff options
author | Dan Williams <dan@ioncontrol.co> | 2024-09-12 12:28:10 -0500 |
---|---|---|
committer | Dan Williams <dan@ioncontrol.co> | 2024-09-17 12:20:46 -0500 |
commit | f19f20c00824a2436e7f6536f0ff278d4b83a4e4 (patch) | |
tree | f9be96e8884235dc155f9ba40d9837ebad1a156e /src/mm-plugin.c | |
parent | 0b5f2adb4b078b305604b1f9b785289e279c5164 (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.c | 27 |
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; |