@@ -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));
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> --- New in v2: - replace: "[PATCH 25/27] HID: wacom: leds: fix ordering of LED banks" --- drivers/hid/wacom_wac.c | 9 +++++++++ 1 file changed, 9 insertions(+)