mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-06 04:57:59 +00:00

This also lets us remove the call to dfu_device_wait_for_replug() which was causing a deadlock due to unsafe main context usage. Splitting the code allows us to use the device list to watch for replug, without adding even more Jabra- specific plugin code to the DFU plugin. Looking at this with a 40,000ft view, the Jabra runtime really doesn't have much in common with DFU and the reason it was originally all lumped together was that the daemon couldn't "change" plugins between detach and update. It's unfortunate that we have to include a sleep() in the DFU code after the DFU probe, but this is specified by Jabra themselves. Attempting to open the device without waiting reboots the hub back into runtime firmware mode, so we can't even retry the failing setup action.
1.1 KiB
1.1 KiB
DFU Support
Introduction
Device Firmware Update is a standard that allows USB devices to be easily and safely updated by any operating system.
Firmware Format
The daemon will decompress the cabinet archive and extract a firmware blob in DFU or DfuSe file format.
This plugin supports the following protocol IDs:
- org.usb.dfu
- com.st.dfuse
GUID Generation
These devices use the standard USB DeviceInstanceId values, e.g.
USB\VID_273F&PID_1003&REV_0001
USB\VID_273F&PID_1003
USB\VID_273F
Quirk use
This plugin uses the following plugin-specific quirks:
Quirk | Description | Minimum fwupd version |
---|---|---|
DfuFlags |
Optional quirks for a DFU device which doesn't follow the DFU 1.0 or 1.1 specification | 1.0.1 |
DfuForceVersion |
Forces a specific DFU version for the hardware device. This is required if the device does not set, or sets incorrectly, items in the DFU functional descriptor. | 1.0.1 |