|
|
@@ -1381,7 +1381,7 @@ static void wacom_intuos_pro2_bt_pad(struct wacom_wac *wacom)
|
|
|
struct input_dev *pad_input = wacom->pad_input;
|
|
|
unsigned char *data = wacom->data;
|
|
|
|
|
|
- int buttons = (data[282] << 1) | ((data[281] >> 6) & 0x01);
|
|
|
+ int buttons = data[282] | ((data[281] & 0x40) << 2);
|
|
|
int ring = data[285] & 0x7F;
|
|
|
bool ringstatus = data[285] & 0x80;
|
|
|
bool prox = buttons || ringstatus;
|
|
|
@@ -3850,7 +3850,7 @@ static void wacom_24hd_update_leds(struct wacom *wacom, int mask, int group)
|
|
|
static bool wacom_is_led_toggled(struct wacom *wacom, int button_count,
|
|
|
int mask, int group)
|
|
|
{
|
|
|
- int button_per_group;
|
|
|
+ int group_button;
|
|
|
|
|
|
/*
|
|
|
* 21UX2 has LED group 1 to the left and LED group 0
|
|
|
@@ -3860,9 +3860,12 @@ static bool wacom_is_led_toggled(struct wacom *wacom, int button_count,
|
|
|
if (wacom->wacom_wac.features.type == WACOM_21UX2)
|
|
|
group = 1 - group;
|
|
|
|
|
|
- button_per_group = button_count/wacom->led.count;
|
|
|
+ group_button = group * (button_count/wacom->led.count);
|
|
|
|
|
|
- return mask & (1 << (group * button_per_group));
|
|
|
+ if (wacom->wacom_wac.features.type == INTUOSP2_BT)
|
|
|
+ group_button = 8;
|
|
|
+
|
|
|
+ return mask & (1 << group_button);
|
|
|
}
|
|
|
|
|
|
static void wacom_update_led(struct wacom *wacom, int button_count, int mask,
|