Skip to content

Commit

Permalink
HID: wacom: Report 2nd-gen Intuos Pro S center button status over BT
Browse files Browse the repository at this point in the history
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: cd47de4 ("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+
  • Loading branch information
jigpu committed Apr 21, 2020
1 parent 661c0e7 commit 9a4250a
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions 4.5/wacom_wac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1432,19 +1432,22 @@ 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;
ring += 3*72/16;
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);

Expand Down

0 comments on commit 9a4250a

Please sign in to comment.