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.gere...@wacom.com>
Signed-off-by: Jiri Kosina <jkos...@suse.cz>
[jason.gere...@wacom.com: Imported into input-wacom repository (aaae03e)]
Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>
[jason.gere...@wacom.com: backported from input-wacom 71cfd59]
Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>
---
 2.6.38/wacom_wac.c | 4 ++--
 3.7/wacom_wac.c    | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/2.6.38/wacom_wac.c b/2.6.38/wacom_wac.c
index 9af8427..b4296de 100644
--- a/2.6.38/wacom_wac.c
+++ b/2.6.38/wacom_wac.c
@@ -509,8 +509,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);
diff --git a/3.7/wacom_wac.c b/3.7/wacom_wac.c
index 5a4496c..8580060 100644
--- a/3.7/wacom_wac.c
+++ b/3.7/wacom_wac.c
@@ -509,8 +509,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);
-- 
2.7.1


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to