• Jason Gerecke's avatar
    HID: wacom: Update last_slot_field during pre_report phase · 003f50ab
    Jason Gerecke authored
    If a touchscreen contains both multitouch and single-touch reports in its
    descriptor in that order, the driver may overwrite information it saved
    about the format of the multitouch report. This can cause the report
    processing code to get tripped up and send an incorrect event stream to
    userspace.
    
    In particular, this can cause last_slot_field to be overwritten with the
    result that the driver prematurely assumes it has finished processing a
    slot and sending the ABS_MT_SLOT event at the wrong point in time,
    associating events for the current contact with the following contact
    instead.
    
    To prevent this from occurring, we update the value of last_slot_field
    durring the pre_report phase to ensure that it is correct for the report
    that is to be processed.
    Signed-off-by: default avatarJason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: default avatarPing Cheng <pingc@wacom.com>
    Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    003f50ab
wacom_wac.h 5.64 KB