fwupd/plugins/wacom-usb
Richard Hughes 2e1245728f Call the superclass directly from subclassed devices
This allows a device subclass to call the parent method after doing an initial
action, or even deliberately not call the *generic* parent method at all.

It also simplifies the plugins; you no longer have to remember what the plugin
is deriving from and accidentally clobber the wrong superclass method.
2021-02-18 16:18:34 +00:00
..
data trivial: Add some debugging data to wacom-usb 2019-01-02 09:50:39 +00:00
fu-plugin-wacom-usb.c Use FWUPD_COMPILATION define to indicate an in tree build 2021-01-22 14:01:25 -06:00
fu-self-test.c Install the installed tests 2020-08-28 10:10:43 -05:00
fu-wac-common.c Check the return values of g_return_val_if_fail() in CI 2021-01-12 20:31:47 +00:00
fu-wac-common.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-device.c Call the superclass directly from subclassed devices 2021-02-18 16:18:34 +00:00
fu-wac-device.h wacom-usb: Use a per-device cleanup function 2020-04-08 16:30:15 +01:00
fu-wac-firmware.c Be more paranoid when parsing from ASCII buffers 2021-02-09 16:37:25 +00:00
fu-wac-firmware.h Only include the start year in the copyright header 2021-01-07 14:48:16 +00:00
fu-wac-module-bluetooth.c Never use memcpy() in a possibly unsafe way 2019-08-12 09:22:09 -05:00
fu-wac-module-bluetooth.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-module-touch.c trivial: Add getters to FuChunk 2021-01-28 16:42:54 +00:00
fu-wac-module-touch.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-module.c Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
fu-wac-module.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
meson.build Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
README.md trivial: Codespell fixes 2020-11-02 14:26:26 +00:00
wacom-usb.quirk remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface 2019-07-15 09:09:29 +01:00

Wacom USB Support

Introduction

Wacom provides interactive pen displays, pen tablets, and styluses to equip and inspire everyone make the world a more creative place.

From 2016 Wacom has been using a HID-based proprietary flashing algorithm which has been documented by support team at Wacom and provided under NDA under the understanding it would be used to build a plugin under a LGPLv2+ license.

Wacom devices are actually composite devices, with the main ARM CPU being programmed using a more complicated erase, write, verify algorithm based on a historical update protocol. The "sub-module" devices use a newer protocol, again based on HID, but are handled differently depending on their type.

Firmware Format

The daemon will decompress the cabinet archive and extract a firmware blob in the following formats:

  • Touch module: Intel HEX file format
  • Bluetooth module: Unknown airoflash file format
  • EMR module: Plain SREC file format
  • Main module: SREC file format, with a custom WACOM vendor header

This plugin supports the following protocol ID:

  • com.wacom.usb

GUID Generation

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

  • USB\VID_056A&PID_0378&REV_0001
  • USB\VID_056A&PID_0378
  • USB\VID_056A

Vendor ID Security

The vendor ID is set from the USB vendor, for example set to USB:0x056A

External interface access

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