summaryrefslogtreecommitdiff
path: root/drivers/hid
diff options
context:
space:
mode:
authorJason Gerecke <killertofu@gmail.com>2015-12-16 13:37:33 -0800
committerJiri Kosina <jkosina@suse.cz>2015-12-18 00:03:06 +0100
commitf73d08d073a4bcb8bb1bd88444f07f39c84400da (patch)
tree89593a877378d1e4d516d796a3385a9c9ae54f44 /drivers/hid
parent8f9cfdd359478ea70da0144b0cb407a4734f14cd (diff)
HID: wacom: Limit touchstrip data to 13 bits
Commit c7f0522 uses sixteen bits of data in the construction of 'strip1' and 'strip2'. This can cause problems in some cases, however, since some tablets store flags in the MSB of data[2] and data[4] that should not be included in these values. This restores the 0x1f mask that used prior to c7f0522. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/wacom_wac.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index 22d32259e1f1..cf878106f4ed 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -545,8 +545,8 @@ static int wacom_intuos_pad(struct wacom_wac *wacom)
((data[6] & 0x0F) << 4) |
(data[5] & 0x0F);
}
- strip1 = (data[1] << 8) | data[2];
- strip2 = (data[3] << 8) | data[4];
+ strip1 = ((data[1] & 0x1f) << 8) | data[2];
+ strip2 = ((data[3] & 0x1f) << 8) | data[4];
}
prox = (buttons & ~(~0 << nbuttons)) | (keys & ~(~0 << nkeys)) |