diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-04-11 11:38:49 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-08-29 17:14:47 +0200 |
commit | 306b4eb5094fb4f46120b41a104e937d0f41e1e9 (patch) | |
tree | 263004eceb6af16d878724dda420888bc8f9c2cf /src/mm-base-modem.c | |
parent | ab67c0b7c363198078c49b6003c4a2cbdffa6694 (diff) |
core: allow grabbing QMI ports
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r-- | src/mm-base-modem.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index aa844642..6c5c562a 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -161,7 +161,8 @@ mm_base_modem_grab_port (MMBaseModem *self, /* Only allow 'tty' and 'net' ports */ if (!g_str_equal (subsys, "net") && - !g_str_equal (subsys, "tty")) { + !g_str_equal (subsys, "tty") && + !(g_str_equal (subsys, "usb") && g_str_has_prefix (name, "cdc-wdm"))) { g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED, @@ -228,8 +229,17 @@ mm_base_modem_grab_port (MMBaseModem *self, MM_PORT_SUBSYS, MM_PORT_SUBSYS_NET, MM_PORT_TYPE, MM_PORT_TYPE_NET, NULL)); + } + /* QMI ports... */ + else if (g_str_equal (subsys, "usb") && + g_str_has_prefix (name, "cdc-wdm")) { + port = MM_PORT (g_object_new (MM_TYPE_PORT, + MM_PORT_DEVICE, name, + MM_PORT_SUBSYS, MM_PORT_SUBSYS_USB, + MM_PORT_TYPE, MM_PORT_TYPE_QMI, + NULL)); } else - /* We already filter out before all non-tty, non-net ports */ + /* We already filter out before all non-tty, non-net, non-wdm ports */ g_assert_not_reached(); mm_dbg ("(%s) type '%s' claimed by %s", |