diff options
Diffstat (limited to 'src/libqmi-glib')
-rw-r--r-- | src/libqmi-glib/qmi-utils.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/libqmi-glib/qmi-utils.c b/src/libqmi-glib/qmi-utils.c index f7d186c..d6c1b3e 100644 --- a/src/libqmi-glib/qmi-utils.c +++ b/src/libqmi-glib/qmi-utils.c @@ -440,7 +440,7 @@ static gchar * utils_get_driver (const gchar *device_basename, GError **error) { - static const gchar *subsystems[] = { "usbmisc", "usb" }; + static const gchar *subsystems[] = { "usbmisc", "usb", "mhi_uci" }; guint i; gchar *driver = NULL; @@ -515,6 +515,17 @@ __qmi_utils_get_transport_type (const gchar *path, goto out; } + if (!g_strcmp0 (driver, "mhi_uci")) { + /* MHI/PCIe uci devices have protocol in their name */ + if (g_strrstr (device_basename, "QMI")) { + transport = __QMI_TRANSPORT_TYPE_QMUX; + goto out; + } else if (g_strrstr (device_basename, "MBIM")) { + transport = __QMI_TRANSPORT_TYPE_MBIM; + goto out; + } + } + g_set_error (&inner_error, QMI_CORE_ERROR, QMI_CORE_ERROR_FAILED, "unexpected driver detected: %s", driver); |