It appears that the Cintiq Companion Hybrid does not send an ABS_MISC
event to userspace when any of its ExpressKeys are pressed. This causes
problems for xf86-input-wacom beginning with its 8f44f35 commit.

Fixes: https://sourceforge.net/p/linuxwacom/bugs/272/
Signed-off-by: Jason Gerecke <killert...@gmail.com>
---
 2.6.38/wacom_wac.c | 6 ++++++
 3.17/wacom_wac.c   | 6 ++++++
 3.7/wacom_wac.c    | 6 ++++++
 3 files changed, 18 insertions(+)

diff --git a/2.6.38/wacom_wac.c b/2.6.38/wacom_wac.c
index 9fbb457..da111d6 100644
--- a/2.6.38/wacom_wac.c
+++ b/2.6.38/wacom_wac.c
@@ -706,6 +706,12 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
                        input_report_key(input, BTN_7, (data[4] & 0x40)); /* 
Left   */
                        input_report_key(input, BTN_8, (data[4] & 0x80)); /* 
Down   */
                        input_report_key(input, BTN_0, (data[3] & 0x01)); /* 
Center */
+
+                       if (data[4] | (data[3] & 0x01)) {
+                               input_report_abs(input, ABS_MISC, 
PAD_DEVICE_ID);
+                       } else {
+                               input_report_abs(input, ABS_MISC, 0);
+                       }
                } else if (features->type >= INTUOS5S && features->type <= 
INTUOSPL) {
                        int i;
 
diff --git a/3.17/wacom_wac.c b/3.17/wacom_wac.c
index ac7447c..e7f3585 100644
--- a/3.17/wacom_wac.c
+++ b/3.17/wacom_wac.c
@@ -760,6 +760,12 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
                        input_report_key(input, BTN_7, (data[4] & 0x40));  /* 
Left   */
                        input_report_key(input, BTN_8, (data[4] & 0x80));  /* 
Down   */
                        input_report_key(input, BTN_0, (data[3] & 0x01));  /* 
Center */
+
+                       if (data[4] | (data[3] & 0x01)) {
+                               input_report_abs(input, ABS_MISC, 
PAD_DEVICE_ID);
+                       } else {
+                               input_report_abs(input, ABS_MISC, 0);
+                       }
                } else if (features->type >= INTUOS5S && features->type <= 
INTUOSPL) {
                        int i;
 
diff --git a/3.7/wacom_wac.c b/3.7/wacom_wac.c
index c6fc09a..4fd644a 100644
--- a/3.7/wacom_wac.c
+++ b/3.7/wacom_wac.c
@@ -706,6 +706,12 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
                        input_report_key(input, BTN_7, (data[4] & 0x40));  /* 
Left   */
                        input_report_key(input, BTN_8, (data[4] & 0x80));  /* 
Down   */
                        input_report_key(input, BTN_0, (data[3] & 0x01));  /* 
Center */
+
+                       if (data[4] | (data[3] & 0x01)) {
+                               input_report_abs(input, ABS_MISC, 
PAD_DEVICE_ID);
+                       } else {
+                               input_report_abs(input, ABS_MISC, 0);
+                       }
                } else if (features->type >= INTUOS5S && features->type <= 
INTUOSPL) {
                        int i;
 
-- 
2.2.2


------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to