]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage
authorJason Gerecke <killertofu@gmail.com>
Fri, 4 Aug 2017 22:35:14 +0000 (15:35 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 9 Sep 2017 15:39:30 +0000 (17:39 +0200)
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 <jason.gerecke@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hid/wacom_wac.c

index e274c9dc32f3a211d97d02f2b6477f20c9121fac..b7f920b35ecd81f327a59e20fc41004f7eda5c14 100644 (file)
@@ -1767,7 +1767,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: