Skip to content
  • Jason Gerecke's avatar
    HID: wacom: Queue events with missing type/serial data for later processing · 83417206
    Jason Gerecke authored
    
    
    Userspace expects to receive tool type and serial number information
    for the active pen in the very first kernel report, if such data is
    supported by the hardware. While this expectation is not an issue for
    EMR devices, AES sensors will often send several packets worth of in-
    range data before relaying type/serial data to the kernel. Sending this
    data "late" can result in proximity-tracking issues by xf86-input-wacom,
    or an inability to distinguish different pens by input-wacom.
    
    Options for dealing with this situation include ignoring reports from
    the tablet until we get the necessary data, or using the information
    from the last-seen pen instead of the (eventual) real data. Neither
    option is particularly attractive: the former results in truncated
    strokes and the latter causes issues with switching between pens.
    
    This commit instead opts to queue up events with missing information
    until we receive a report which contains it. At that point, we can
    update the driver's state variables (id[0] and serial[0]) and replay
    the queued events.
    
    Signed-off-by: default avatarJason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    83417206