Commit aaae03e4 authored by Jason Gerecke's avatar Jason Gerecke Committed by Jiri Kosina

HID: wacom: Fix touchring value reporting

Commit c7f0522a 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: default avatarJason Gerecke <jason.gerecke@wacom.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 03a0dc54
...@@ -560,8 +560,8 @@ static int wacom_intuos_pad(struct wacom_wac *wacom) ...@@ -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_RX, strip1);
input_report_abs(input, ABS_RY, strip2); input_report_abs(input, ABS_RY, strip2);
input_report_abs(input, ABS_WHEEL, ring1 & 0x7f ? ring1 : 0); input_report_abs(input, ABS_WHEEL, (ring1 & 0x80) ? (ring1 & 0x7f) : 0);
input_report_abs(input, ABS_THROTTLE, ring2 & 0x07 ? ring2 : 0); input_report_abs(input, ABS_THROTTLE, (ring2 & 0x80) ? (ring2 & 0x7f) : 0);
input_report_key(input, wacom->tool[1], prox ? 1 : 0); input_report_key(input, wacom->tool[1], prox ? 1 : 0);
input_report_abs(input, ABS_MISC, prox ? PAD_DEVICE_ID : 0); input_report_abs(input, ABS_MISC, prox ? PAD_DEVICE_ID : 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment