diff options
author | Jason Gerecke <killertofu@gmail.com> | 2017-08-04 15:35:14 -0700 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2017-08-08 10:10:26 +0200 |
commit | 8d411cbf46e515ca2b7ceb3d2b3f43e22813edac (patch) | |
tree | b19b1b5ab287b74ab24a2f1b7247b0aa72203943 /drivers/hid/wacom_wac.c | |
parent | b448cbead5054725aba13e897f8473caa19505b1 (diff) | |
download | talos-op-linux-8d411cbf46e515ca2b7ceb3d2b3f43e22813edac.tar.gz talos-op-linux-8d411cbf46e515ca2b7ceb3d2b3f43e22813edac.zip |
HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage
The WACOM_HID_WD_TOUCHRINGSTATUS usage is a single bit which tells us
whether the touchring is currently in use or not. Because we need to
reset the axis value to 0 when the finger is removed, we call
'wacom_map_usage' to ensure that the required type/code values are
associated with the usage. The 'wacom_map_usage' also sets up the axis
range and resolution, however, which is not desired in this particular
case.
Although xf86-input-wacom doesn't do really do anything with the ring's
range or resolution, the libinput driver (for Wayland environments)
uses these values to provide proper angle indications to userspace.
Fixes: 60a2218698 ("HID: wacom: generic: add support for touchring")
Cc: stable@vger.kernel.org
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/wacom_wac.c')
-rw-r--r-- | drivers/hid/wacom_wac.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c index 9f940293ede4..bb17d7bbefd3 100644 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c @@ -1846,7 +1846,13 @@ static void wacom_wac_pad_usage_mapping(struct hid_device *hdev, features->device_type |= WACOM_DEVICETYPE_PAD; break; case WACOM_HID_WD_TOUCHRINGSTATUS: - wacom_map_usage(input, usage, field, EV_ABS, ABS_WHEEL, 0); + /* + * Only set up type/code association. Completely mapping + * this usage may overwrite the axis resolution and range. + */ + usage->type = EV_ABS; + usage->code = ABS_WHEEL; + set_bit(EV_ABS, input->evbit); features->device_type |= WACOM_DEVICETYPE_PAD; break; case WACOM_HID_WD_BUTTONCONFIG: |