HID: wacom: leds: make sure Cintiq 21UX2 and 24HD control the right LEDs
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Wed, 13 Jul 2016 16:06:13 +0000 (18:06 +0200)
committerJiri Kosina <jkosina@suse.cz>
Fri, 5 Aug 2016 11:39:21 +0000 (13:39 +0200)
The code for 21UX2 and 24HD makes the LED group 1 on the left, and
the group 0 on the right. The buttons are ordered in the other way,
but libwacom already exports those that way. So we simply can't reassign
LED group 0 to the left buttons, and have to quirk the incoming data...

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/wacom_wac.c

index 00e0c80be6d50f9b7213729e70f628d2cabe7547..a9693d5d2e9383b218cdfac6df975d7538d8916f 100644 (file)
@@ -2768,6 +2768,15 @@ static bool wacom_is_led_toggled(struct wacom *wacom, int button_count,
 {
        int button_per_group;
 
+       /*
+        * 24HD and 21UX2 have LED group 1 to the left and LED group 0
+        * to the right. We need to reverse the group to match this
+        * historical behavior.
+        */
+       if (wacom->wacom_wac.features.type == WACOM_24HD ||
+           wacom->wacom_wac.features.type == WACOM_21UX2)
+               group = 1 - group;
+
        button_per_group = button_count/wacom->led.count;
 
        return mask & (1 << (group * button_per_group));