fwupd/plugins/synaptics-cape
Richard Hughes f885ab6d2a Allow patching firmware files at known offsets
This allows us to replace the 'dfu-tool replace' with a much more
controlled 'fwupdtool firmware-patch' command that patches at a set of
specific offsets.

Drop in the new functionality into the existing firmware ->write()
vfuncs so that the image headers, footers and/or checksums are correct.
2022-01-05 09:51:45 +00:00
..
tests Move the fuzzing files into the plugin directories 2021-10-22 15:24:05 +01:00
fu-plugin-synaptics-cape.c Speed up the daemon startup by ~2% by doing dlsym much less 2021-11-09 12:02:07 +00:00
fu-synaptics-cape-device.c synaptics-cape: Do not assume we can align uint8_t to uint32_t 2021-12-10 15:59:24 +00:00
fu-synaptics-cape-device.h plugins: add new plugin for Synaptics CAPE devices (#3746) 2021-09-15 03:42:07 +08:00
fu-synaptics-cape-firmware.c Allow patching firmware files at known offsets 2022-01-05 09:51:45 +00:00
fu-synaptics-cape-firmware.h plugins: add new plugin for Synaptics CAPE devices (#3746) 2021-09-15 03:42:07 +08:00
meson.build plugins: add new plugin for Synaptics CAPE devices (#3746) 2021-09-15 03:42:07 +08:00
README.md synaptics-cape: Add interrupt endpoint support (#3798) 2021-09-27 16:53:08 +08:00
synaptics-cape.quirk synaptics-cape: Add interrupt endpoint support (#3798) 2021-09-27 16:53:08 +08:00

Synaptics CAPE devices

Introduction

This plugin is used to update Synaptics CAPE based audio devices.

Firmware Format

The daemon will decompress the cabinet archive and extract a firmware blob.

This plugin supports the following protocol ID:

  • com.synaptics.cape

GUID Generation

These devices use the standard USB DeviceInstanceId values, e.g.

  • USB\VID_1395&PID_0293

These devices also use custom GUID values, e.g.

  • SYNAPTICS_CAPE\CX31993
  • SYNAPTICS_CAPE\CX31988

Update Behavior

The firmware is deployed when the device is in normal runtime mode, and the device will reset when the new firmware has been written.

Vendor ID Security

The vendor ID is set from the USB vendor, in this instance set to USB:0x1395

Plugin-specific flags

  • use-in-report-interrupt: some devices will support IN_REPORT that allow host communicate with device over interrupt instead of control endpoint, since: 1.7.0

External Interface Access

This plugin requires read/write access to /dev/bus/usb.