• Jason Gerecke's avatar
    HID: wacom: Fix sensor outbounds and redefine as offsets from each edge · e779ef23
    Jason Gerecke authored
    Many of Wacom's display tablets include an "outbound" area where pen
    digitizing is possible but outside of the display area. To ensure that
    pen coordinates are mapped to the correct on-screen location, the driver
    sets the minimum and maximum axis values of X and Y to those coordinates
    which coincide with the screen edge. These values are simply the
    hardware minimum/maximum plus/minus the outbound size for a particular
    edge.
    
    When outbound support was added/updated in ac414da3, fa770340, and
    ecd618dc, we decided to have the wacom_features structs store the desired
    minimum and maximum values directly. In hindsight, this was perhaps not
    the best choice since it has allowed minor errors to crop up unnoticed.
    Some tablets have had their coordinates over-corrected (e.g. most of the
    devices "fixed" in ecd618dc were already adjusted in ac414da3), while
    others never had a correction applied (e.g. the ISDv5 325, whose
    declared maximum the hardware maximum instead of the outbound maximum).
    
    A less error-prone method of handling the outbound is to let the driver
    calculate the correct minimum/maximum values by providing it with both
    the actual hardware maximums and the size of the outbound on each edge.
    These values are more easy to verify as correct since the values can be
    trivially compared against specifications.
    
    This patch reverts the declared maximum values to the actual hardware
    maximums, e.g. as declared prior to ac414da3 (values for these and other
    display tablets that were subsuquently introduced have been verified
    against specs). Per-edge outbound sizes are stored in the wacom_features
    struct as offset_{left,right,top,bottom} and used in combination with
    the hardware ranges to calculate effective axis ranges for ABS_X and
    ABS_Y.
    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>
    e779ef23
wacom_wac.c 120 KB