summaryrefslogtreecommitdiff
path: root/usr/src/dkms_source_tree/wacom_wac.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/dkms_source_tree/wacom_wac.c')
-rw-r--r--usr/src/dkms_source_tree/wacom_wac.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/usr/src/dkms_source_tree/wacom_wac.c b/usr/src/dkms_source_tree/wacom_wac.c
index 03a3fdc..d1c388e 100644
--- a/usr/src/dkms_source_tree/wacom_wac.c
+++ b/usr/src/dkms_source_tree/wacom_wac.c
@@ -869,8 +869,11 @@ static int wacom_bbt_irq(struct wacom_wac *wacom, size_t len)
869 int p = data[9 * i + 2]; 869 int p = data[9 * i + 2];
870 input_mt_slot(input, i); 870 input_mt_slot(input, i);
871 if (p) { 871 if (p) {
872 int x = get_unaligned_be16(&data[9 * i + 3]) << 4; 872 int x = get_unaligned_be16(&data[9 * i + 3]) & 0x7ff;
873 int y = get_unaligned_be16(&data[9 * i + 5]) << 4; 873 int y = get_unaligned_be16(&data[9 * i + 5]) & 0x7ff;
874 /* artificial scaling */
875 x <<= 4;
876 y <<= 4;
874 input_report_abs(input, ABS_MT_PRESSURE, p); 877 input_report_abs(input, ABS_MT_PRESSURE, p);
875 input_report_abs(input, ABS_MT_POSITION_X, x); 878 input_report_abs(input, ABS_MT_POSITION_X, x);
876 input_report_abs(input, ABS_MT_POSITION_Y, y); 879 input_report_abs(input, ABS_MT_POSITION_Y, y);