fwupd/plugins/synaptics-cape
Richard Hughes a61bb37881 Build the quirk files into the daemon as a GResource
Interestingly, this increases the `fwupd` binary size by ~30kb but
reduces the installed size of /usr/share/fwupd/quirks.d by ~330kb.
2022-06-30 18:52:24 +01: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: Fix a big endian compile warning 2022-06-26 17:28:04 -05:00
fu-synaptics-cape-device.h trivial: Remove the class structs for types that use G_DECLARE_FINAL_TYPE 2022-05-21 12:19:50 +01:00
fu-synaptics-cape-firmware.c Make the FuFirmware->parse() vfunc more helpful 2022-06-27 15:40:11 -05: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 Build the quirk files into the daemon as a GResource 2022-06-30 18:52:24 +01:00
README.md synaptics-cape: Add interrupt endpoint support (#3798) 2021-09-27 16:53:08 +08:00
synaptics-cape.quirk synaptics-cape: Don't use 'dongle' to describe hardware 2022-05-23 14:56:45 +01: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.