diff options
author | Loic Poulain <loic.poulain@linaro.org> | 2020-11-24 15:33:29 +0100 |
---|---|---|
committer | Loic Poulain <loic.poulain@linaro.org> | 2020-12-16 15:17:32 +0100 |
commit | ba27c317bec0c47c453b4e10667f2122e9fefa39 (patch) | |
tree | e634a713b8070d0966e9f71a7d81ffa3ec044b7f | |
parent | d4383e89dc921941acb5b56aa3fc85b492f027ac (diff) |
libqmi-glib,utils: Add mhi_uci device/driver support
mhi_uci is the Linux subsystem/driver exposing raw PCIe/MHI channels
to userspace via character devices. This channels can serve as transport
for various protocols, including QMUX, MBIM, etc...
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
-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); |