Thread (3 messages) 3 messages, 3 authors, 2015-01-23

Re: [PATCH] HID: wacom: Report ABS_MISC event for Cintiq Companion Hybrid

From: Benjamin Tissoires <hidden>
Date: 2015-01-23 00:56:55

On Thu, Jan 22, 2015 at 6:53 PM, Jason Gerecke [off-list ref] wrote:
It appears that the Cintiq Companion Hybrid does not send an ABS_MISC
event to userspace when any of its ExpressKeys are pressed. This is not
strictly necessary now that the pad exists on its own device, but
should be fixed for consistency's sake.

Traditionally both the stylus and pad shared the same device node, and
xf86-input-wacom would use ABS_MISC for disambiguation. Not sending this
causes the Hybrid to behave incorrectly with xf86-input-wacom beginning with
its 8f44f3 commit.

Signed-off-by: Jason Gerecke <redacted>
---
Question: I'd like to write a version of this patch which targets stable
releases where the stylus and pad share the device node. How would I go
about submitting one, since CCing this patch to stable won't quite do the
trick (the patches would have to be against our old home under
drivers/input/tablet...)
IIRC, once this one hits linus tree, you send an adapted version of
the same patch which refers this one.
Just add the hash of the final patch in Linus tree, and mention in the
subject prefix which stable releases you are targeting.

See for an example http://thread.gmane.org/gmane.linux.kernel.stable/120947
quoted hunk ↗ jump to hunk
 drivers/hid/wacom_wac.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index a4ba8ca..f886149 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -783,6 +783,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);
+                       }
I am not 100% sure, but in my memories, the ABS_MISC event was sent
before any buttons.
But maybe not.

Anyway, this is Reviewed-by: Benjamin Tissoires [off-list ref]

Cheers,
Benjamin
                } else if (features->type >= INTUOS5S && features->type <= INTUOSPL) {
                        int i;

--
2.2.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help