aboutsummaryrefslogtreecommitdiff
path: root/src/mm-port-probe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-port-probe.c')
-rw-r--r--src/mm-port-probe.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c
index dcedc3a8..a5d2207d 100644
--- a/src/mm-port-probe.c
+++ b/src/mm-port-probe.c
@@ -112,6 +112,12 @@ struct _MMPortProbePrivate {
GTask *task;
};
+static const MMStringUintMap port_subsys_map[] = {
+ { "usbmisc", MM_PORT_SUBSYS_USBMISC },
+ { "rpmsg", MM_PORT_SUBSYS_RPMSG },
+ { "wwan", MM_PORT_SUBSYS_WWAN },
+};
+
/*****************************************************************************/
static void
@@ -542,11 +548,12 @@ wdm_probe_qmi (MMPortProbe *self)
} else
#endif /* WITH_QRTR */
{
- MMPortSubsys subsys = MM_PORT_SUBSYS_USBMISC;
-
- if (g_str_equal (mm_kernel_device_get_subsystem (self->priv->port), "rpmsg"))
- subsys = MM_PORT_SUBSYS_RPMSG;
+ MMPortSubsys subsys;
+ subsys = mm_string_uint_map_lookup (port_subsys_map,
+ G_N_ELEMENTS (port_subsys_map),
+ mm_kernel_device_get_subsystem (self->priv->port),
+ MM_PORT_SUBSYS_USBMISC);
ctx->port_qmi = mm_port_qmi_new (mm_kernel_device_get_name (self->priv->port), subsys);
}
@@ -1215,15 +1222,13 @@ serial_open_at (MMPortProbe *self)
/* Create AT serial port if not done before */
if (!ctx->serial) {
- gpointer parser;
- MMPortSubsys subsys = MM_PORT_SUBSYS_TTY;
-
- if (g_str_equal (mm_kernel_device_get_subsystem (self->priv->port), "usbmisc"))
- subsys = MM_PORT_SUBSYS_USBMISC;
- else if (g_str_equal (mm_kernel_device_get_subsystem (self->priv->port), "rpmsg"))
- subsys = MM_PORT_SUBSYS_RPMSG;
- else if (g_str_equal (mm_kernel_device_get_subsystem (self->priv->port), "wwan"))
- subsys = MM_PORT_SUBSYS_WWAN;
+ gpointer parser;
+ MMPortSubsys subsys;
+
+ subsys = mm_string_uint_map_lookup (port_subsys_map,
+ G_N_ELEMENTS (port_subsys_map),
+ mm_kernel_device_get_subsystem (self->priv->port),
+ MM_PORT_SUBSYS_TTY);
ctx->serial = MM_PORT_SERIAL (mm_port_serial_at_new (mm_kernel_device_get_name (self->priv->port), subsys));
if (!ctx->serial) {