HID: wacom: Report 2nd-gen Intuos Pro S center button status over BT
The state of the center button was not reported to userspace for the 2nd-gen Intuos Pro S when used over Bluetooth due to the pad handling code not being updated to support its reduced number of buttons. This patch uses the actual number of buttons present on the tablet to assemble a button state bitmap. Link: https://github.com/linuxwacom/xf86-input-wacom/issues/112 Fixes: cd47de45b855 ("HID: wacom: Add 2nd gen Intuos Pro Small support") Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com> Cc: stable@vger.kernel.org # v5.3+ Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
0ed08faded
commit
dcce8ef8f7
|
@ -1427,11 +1427,13 @@ 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 nbuttons = wacom->features.numbered_buttons;
|
||||
|
||||
int buttons = data[282] | ((data[281] & 0x40) << 2);
|
||||
int expresskeys = data[282];
|
||||
int center = (data[281] & 0x40) >> 6;
|
||||
int ring = data[285] & 0x7F;
|
||||
bool ringstatus = data[285] & 0x80;
|
||||
bool prox = buttons || ringstatus;
|
||||
bool prox = expresskeys || center || ringstatus;
|
||||
|
||||
/* Fix touchring data: userspace expects 0 at left and increasing clockwise */
|
||||
ring = 71 - ring;
|
||||
|
@ -1439,7 +1441,8 @@ static void wacom_intuos_pro2_bt_pad(struct wacom_wac *wacom)
|
|||
if (ring > 71)
|
||||
ring -= 72;
|
||||
|
||||
wacom_report_numbered_buttons(pad_input, 9, buttons);
|
||||
wacom_report_numbered_buttons(pad_input, nbuttons,
|
||||
expresskeys | (center << (nbuttons - 1)));
|
||||
|
||||
input_report_abs(pad_input, ABS_WHEEL, ringstatus ? ring : 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue