| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We allow running FW updates even when udev isn't available in the
system. In this case, though, only the manual operations will be
supported (i.e. --reset and --update-qdl).
|
|
|
|
| |
Added example of how to manually update 9x15 and 9x30 devices.
|
|
|
|
|
| |
The actions map to different QMI messages, and we try to keep one action
per QMI message.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
==14200== 308 (208 direct, 100 indirect) bytes in 1 blocks are definitely lost in loss record 1,163 of 1,191
==14200== at 0x4C2AB8D: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==14200== by 0x5D34B98: g_malloc (in /usr/lib/libglib-2.0.so.0.5000.2)
==14200== by 0x5D4D0D2: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.5000.2)
==14200== by 0x5D4D6FD: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.5000.2)
==14200== by 0x5AC62B3: g_type_create_instance (in /usr/lib/libgobject-2.0.so.0.5000.2)
==14200== by 0x5AA81FA: ??? (in /usr/lib/libgobject-2.0.so.0.5000.2)
==14200== by 0x5AA9C0C: g_object_newv (in /usr/lib/libgobject-2.0.so.0.5000.2)
==14200== by 0x5AAA3C3: g_object_new (in /usr/lib/libgobject-2.0.so.0.5000.2)
==14200== by 0x5789694: g_task_new (in /usr/lib/libgio-2.0.so.0.5000.2)
==14200== by 0x40D2E1: qfu_udev_helper_wait_for_device (qfu-udev-helpers.c:580)
==14200== by 0x40753D: qfu_device_selection_wait_for_tty (qfu-device-selection.c:211)
==14200== by 0x40A380: run_context_step_wait_for_tty (qfu-updater.c:798)
==14200==
==14200== 308 (208 direct, 100 indirect) bytes in 1 blocks are definitely lost in loss record 1,164 of 1,191
==14200== at 0x4C2AB8D: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==14200== by 0x5D34B98: g_malloc (in /usr/lib/libglib-2.0.so.0.5000.2)
==14200== by 0x5D4D0D2: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.5000.2)
==14200== by 0x5D4D6FD: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.5000.2)
==14200== by 0x5AC62B3: g_type_create_instance (in /usr/lib/libgobject-2.0.so.0.5000.2)
==14200== by 0x5AA81FA: ??? (in /usr/lib/libgobject-2.0.so.0.5000.2)
==14200== by 0x5AA9C0C: g_object_newv (in /usr/lib/libgobject-2.0.so.0.5000.2)
==14200== by 0x5AAA3C3: g_object_new (in /usr/lib/libgobject-2.0.so.0.5000.2)
==14200== by 0x5789694: g_task_new (in /usr/lib/libgio-2.0.so.0.5000.2)
==14200== by 0x40D2E1: qfu_udev_helper_wait_for_device (qfu-udev-helpers.c:580)
==14200== by 0x4074DD: qfu_device_selection_wait_for_cdc_wdm (qfu-device-selection.c:195)
==14200== by 0x409977: run_context_step_wait_for_cdc_wdm (qfu-updater.c:579)
|
|
|
|
|
|
|
|
|
|
|
|
| |
==14200== 52 bytes in 1 blocks are definitely lost in loss record 792 of 1,191
==14200== at 0x4C2AB8D: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==14200== by 0x5D34B98: g_malloc (in /usr/lib/libglib-2.0.so.0.5000.2)
==14200== by 0x5D4EC3E: g_strdup (in /usr/lib/libglib-2.0.so.0.5000.2)
==14200== by 0x40C16D: udev_helper_get_udev_device_details (qfu-udev-helpers.c:94)
==14200== by 0x40C72C: udev_helper_find_by_device_info_in_subsystem (qfu-udev-helpers.c:263)
==14200== by 0x40C978: qfu_udev_helper_find_by_device_info (qfu-udev-helpers.c:314)
==14200== by 0x4076A9: qfu_device_selection_new (qfu-device-selection.c:264)
==14200== by 0x406A99: main (qfu-main.c:559)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After an update operation, before exiting, we MUST close the QmiDevice
using the asynchronous method, so that we wait for the inner 'MBIM
close' message (when QMI over MBIM is being used).
We don't want to leave the 'MBIM close done' message unread, as that
seems to interfere with the next 'MBIM open' sequence.
This sequence is incorrect:
qmi-firmware-update
...
--> mbim close
(exit without reading response)
qmi-firmware-update
--> mbim open (seq 1)
<-- mbim close done
--> mbim open (seq 2)
--> mbim open (seq 3)
--> mbim open (seq 4)
...
(times out)
This sequence is correct:
qmi-firmware-update
...
--> mbim close
<-- mbim close done
(exit)
qmi-firmware-update
--> mbim open (seq 1)
<-- mbim open done
...
|
|
|
|
|
|
|
|
|
| |
src/libqmi-glib/qmi-device.c: In function 'device_open_context_step':
src/libqmi-glib/qmi-device.c:2204:5: error: label 'next_step' defined but not used [-Werror=unused-label]
next_step:
^
cc1: all warnings being treated as errors
Makefile:614: recipe for target 'libqmi_glib_la-qmi-device.lo' failed
|
| |
|
| |
|
|
|
|
|
|
| |
They all had the WDS prefix instead of WMS, so fix that.
We include the old names in -compat to avoid breaking API.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The 'since' tag specifies in which major stable version the given
message or TLV was introduced.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Otherwise the MBIM channel will be kept open and the next MBIM commands
won't succeed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The sync close operation that was implemented was partially useless
because the source responsible for I/O was scheduled in the main
context, so we were really relying on that main context to be still
running to properly finish the operation. i.e. a qmi_device_close()
after the default main loop was stopped would always end up with a
timeout error, as the response was never read.
So, we now modify the sync operation so that it doesn't do any explicit
wait for the response, we just issue the MBIM close command.
And we provide a new async operation that may be used to wait for the
MBIM close response.
|
|
|
|
|
| |
E.g. during the test fixtures in the unit tests, where we create
QmiDevices for non-existent devices.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
This patch fixes the image length check in download_image(). The check
'if (filelen < 0)' in download_image() is always false as 'filelen' is a
size_t and thus unsigned value. The check is effectively bypassed.
|
|
|
|
|
| |
-Wtype-limits warns when comparing unsigned variables <= 0, which
we shouldn't be doing.
|
|
|
|
|
|
|
| |
g_type_init() has been deprecated (and also marked with the attribute
'deprecated') since glib 2.36 as the type system is automatically
initialized. Since the minimum version of glib required by libqmi is
2.36, calling g_type_init() isn't necessarily in the libqmi code.
|
| |
|
|
|
|
|
| |
So that running the same test at the same time in the same machine
(e.g. during the jenkins jobs...) doesn't crash.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[01 feb 2017, 23:14:53] [Debug] [qfu-updater] reset requested successfully...
[01 feb 2017, 23:14:53] [Debug] [qfu-updater] cleaning up QMI device...
[01 feb 2017, 23:14:53] [Debug] [/dev/cdc-wdm2] Releasing 'dms' client with flags 'none'...
[01 feb 2017, 23:14:53] [Debug] [/dev/cdc-wdm2] Unregistered 'dms' client with ID '2'
[01 feb 2017, 23:14:53] [Debug] [/dev/cdc-wdm2] Sent message...
<<<<<< RAW:
<<<<<< length = 12
<<<<<< data = 02:00:00:00:0C:00:00:00:0B:00:00:00
[01 feb 2017, 23:14:53] [Debug] [/dev/cdc-wdm2] Sent message (translated)...
<<<<<< Header:
<<<<<< length = 12
<<<<<< type = close (0x00000002)
<<<<<< transaction = 11
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove ttyUSB0
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove ttyUSB1
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove wwan0
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove 2-1.4:1.0
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove 2-1.4:1.3
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove cdc-wdm2
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove 2-1.4:1.13
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove 2-1.4:1.12
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: remove 2-1.4
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add 2-1.4
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add 2-1.4:1.0
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add 2-1.4:1.3
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add 2-1.4:1.12
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add 2-1.4:1.13
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add cdc-wdm2
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add ttyUSB0
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add wwan0
[01 feb 2017, 23:15:13] [Debug] [qfu-udev] event: add ttyUSB1
[01 feb 2017, 23:15:13] [Debug] [qfu-updater] now waiting for cdc-wdm device...
error: error waiting for cdc-wdm: waiting for device at '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4' timed out
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure all GUdevDevice objects created during the helper methods
aren't unref-ed after the GUdevClient that created them.
This is because the udev context is owned by the GUdevClient but also
used (without any full reference) by all udev_devices (i.e.
GUdevDevices) created from that same context.
Quite easy to reproduce when using libudev < 218.
|
| |
|
| |
|