From: Jason Gerecke Date: Fri, 4 Aug 2017 22:35:14 +0000 (-0700) Subject: HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage X-Git-Tag: Ubuntu-4.13.0-10.11~31 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=20488fa506aeb3939c104b0e140f884116d29513;hp=c74cc7adef2dae1131159ddab2cd95137ff0c3bc;p=mirror_ubuntu-artful-kernel.git HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage BugLink: http://bugs.launchpad.net/bugs/1716284 commit 8d411cbf46e515ca2b7ceb3d2b3f43e22813edac upstream. 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") Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina Signed-off-by: Greg Kroah-Hartman Signed-off-by: Seth Forshee --- 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: