HID: wacom: Fix touchring value reporting
authorJason Gerecke <killertofu@gmail.com>
Wed, 16 Dec 2015 21:37:35 +0000 (13:37 -0800)
committerJiri Kosina <jkosina@suse.cz>
Thu, 17 Dec 2015 23:03:07 +0000 (00:03 +0100)
Commit c7f0522 reports incorrect touchring values to userspace. This is
due to its incorrect handling of the 'touched' bit present in the 'ring1'
and 'ring2' variables. Instead of using this bit when determining if a
value should be sent, the ABS_WHEEL and ABS_INPUT check (different?!)
portions of the position bits. Furthermore, the full values of 'ring1'
and 'ring2' are reported to userspace, despite the 'touched' flag
needing to be trimmed beforehand. This commit addresses both issues.

Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/wacom_wac.c

index 94dffde5f3d5c7c33430b03bbcd33b268786fab6..23212af7fa7677c20864a5e9d8dae0f33bb39ea3 100644 (file)
@@ -560,8 +560,8 @@ static int wacom_intuos_pad(struct wacom_wac *wacom)
        input_report_abs(input, ABS_RX, strip1);
        input_report_abs(input, ABS_RY, strip2);
 
-       input_report_abs(input, ABS_WHEEL,    ring1 & 0x7f ? ring1 : 0);
-       input_report_abs(input, ABS_THROTTLE, ring2 & 0x07 ? ring2 : 0);
+       input_report_abs(input, ABS_WHEEL,    (ring1 & 0x80) ? (ring1 & 0x7f) : 0);
+       input_report_abs(input, ABS_THROTTLE, (ring2 & 0x80) ? (ring2 & 0x7f) : 0);
 
        input_report_key(input, wacom->tool[1], prox ? 1 : 0);
        input_report_abs(input, ABS_MISC, prox ? PAD_DEVICE_ID : 0);
This page took 0.025986 seconds and 5 git commands to generate.