aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libqmi-glib/qmi-utils.c13
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);