aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmi-firmware-update/qfu-utils.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2017-01-23 21:49:13 +0100
committerAleksander Morgado <aleksander@aleksander.es>2017-02-08 18:49:21 +0100
commitae4bf3a0335baa2027abb8c56d1adc1824c8a701 (patch)
tree178a657308f5cc80b3063553f77f90394acd2224 /src/qmi-firmware-update/qfu-utils.c
parent3b56f04e3befadd40f62568e028b1cd09a735296 (diff)
downloadexternal_libqmi-ae4bf3a0335baa2027abb8c56d1adc1824c8a701.zip
external_libqmi-ae4bf3a0335baa2027abb8c56d1adc1824c8a701.tar.gz
external_libqmi-ae4bf3a0335baa2027abb8c56d1adc1824c8a701.tar.bz2
qmi-firmware-update: support automatic mode (QMI/MBIM) detection by default
The default, if nothing specified, is the 'auto mode', which can also be explicitly selected with --device-open-auto. The user may also select an explicit mode with --device-open-mbim or --device-open-qmi.
Diffstat (limited to 'src/qmi-firmware-update/qfu-utils.c')
-rw-r--r--src/qmi-firmware-update/qfu-utils.c28
1 files changed, 10 insertions, 18 deletions
diff --git a/src/qmi-firmware-update/qfu-utils.c b/src/qmi-firmware-update/qfu-utils.c
index 9977f1f..32437e3 100644
--- a/src/qmi-firmware-update/qfu-utils.c
+++ b/src/qmi-firmware-update/qfu-utils.c
@@ -217,11 +217,10 @@ out:
/******************************************************************************/
typedef struct {
- QmiDevice *qmi_device;
- gboolean device_open_proxy;
- gboolean device_open_mbim;
- gint qmi_client_retries;
- QmiClientDms *qmi_client;
+ QmiDevice *qmi_device;
+ QmiDeviceOpenFlags device_open_flags;
+ gint qmi_client_retries;
+ QmiClientDms *qmi_client;
gboolean load_capabilities;
gchar *revision;
@@ -544,7 +543,6 @@ qmi_device_ready (GObject *source,
{
NewClientDmsContext *ctx;
GError *error = NULL;
- QmiDeviceOpenFlags flags = QMI_DEVICE_OPEN_FLAGS_SYNC;
ctx = (NewClientDmsContext *) g_task_get_task_data (task);
@@ -558,16 +556,12 @@ qmi_device_ready (GObject *source,
g_debug ("[qfu,utils] QMI device created");
- if (ctx->device_open_proxy)
- flags |= QMI_DEVICE_OPEN_FLAGS_PROXY;
- if (ctx->device_open_mbim)
- flags |= QMI_DEVICE_OPEN_FLAGS_MBIM;
-
g_debug ("[qfu,utils] opening QMI device (%s proxy, %s mode)...",
- ctx->device_open_proxy ? "with" : "without",
- ctx->device_open_mbim ? "mbim" : "qmi");
+ (ctx->device_open_flags & QMI_DEVICE_OPEN_FLAGS_PROXY) ? "with" : "without",
+ (ctx->device_open_flags & QMI_DEVICE_OPEN_FLAGS_MBIM) ? "mbim" : "qmi");
+
qmi_device_open (ctx->qmi_device,
- flags,
+ ctx->device_open_flags | QMI_DEVICE_OPEN_FLAGS_SYNC,
20,
g_task_get_cancellable (task),
(GAsyncReadyCallback) qmi_device_open_ready,
@@ -577,8 +571,7 @@ qmi_device_ready (GObject *source,
void
qfu_utils_new_client_dms (GFile *cdc_wdm_file,
guint retries,
- gboolean device_open_proxy,
- gboolean device_open_mbim,
+ QmiDeviceOpenFlags device_open_flags,
gboolean load_capabilities,
GCancellable *cancellable,
GAsyncReadyCallback callback,
@@ -589,8 +582,7 @@ qfu_utils_new_client_dms (GFile *cdc_wdm_file,
ctx = g_slice_new0 (NewClientDmsContext);
ctx->qmi_client_retries = retries;
- ctx->device_open_proxy = device_open_proxy;
- ctx->device_open_mbim = device_open_mbim;
+ ctx->device_open_flags = device_open_flags;
ctx->load_capabilities = load_capabilities;
task = g_task_new (NULL, cancellable, callback, user_data);