From: Benjamin Tissoires Date: Wed, 13 Jul 2016 16:06:13 +0000 (+0200) Subject: HID: wacom: leds: make sure Cintiq 21UX2 and 24HD control the right LEDs X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=5a0fe8abd169be4f2e1f73ad851419d502b5a832;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git HID: wacom: leds: make sure Cintiq 21UX2 and 24HD control the right LEDs 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 Acked-by: Ping Cheng Signed-off-by: Jiri Kosina --- diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c index 00e0c80be6d5..a9693d5d2e93 100644 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c @@ -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));