diff options
author | Jason Gerecke <killertofu@gmail.com> | 2014-04-19 16:51:41 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2014-04-19 16:57:35 -0400 |
commit | 38a1807badd26d413e8f2b0393a0c5bfdf9e912b (patch) | |
tree | 6abe36e8e92a745e100e88ed8f8008759f80aff0 | |
parent | 74b634178e5f0e2d8d2d26f308c440687930274b (diff) |
Input: wacom - handle 1024 pressure levels in wacom_tpc_pen
Some tablet PC sensors (e.g. the 0xEC found in the Thinkpad Yoga) report
more than 256 pressure levels and will experience wraparound unless the
full range is read.
Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Tested-by: Aaron Skomra <Aaron.Skomra@wacom.com>
Reviewed-by: Carl Worth <cworth@cworth.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-rw-r--r-- | drivers/input/tablet/wacom_wac.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c index 99710e9fdd6a..4822c57a3756 100644 --- a/drivers/input/tablet/wacom_wac.c +++ b/drivers/input/tablet/wacom_wac.c | |||
@@ -1087,7 +1087,7 @@ static int wacom_tpc_pen(struct wacom_wac *wacom) | |||
1087 | input_report_key(input, BTN_STYLUS2, data[1] & 0x10); | 1087 | input_report_key(input, BTN_STYLUS2, data[1] & 0x10); |
1088 | input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); | 1088 | input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); |
1089 | input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); | 1089 | input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); |
1090 | input_report_abs(input, ABS_PRESSURE, ((data[7] & 0x01) << 8) | data[6]); | 1090 | input_report_abs(input, ABS_PRESSURE, ((data[7] & 0x03) << 8) | data[6]); |
1091 | input_report_key(input, BTN_TOUCH, data[1] & 0x05); | 1091 | input_report_key(input, BTN_TOUCH, data[1] & 0x05); |
1092 | input_report_key(input, wacom->tool[0], prox); | 1092 | input_report_key(input, wacom->tool[0], prox); |
1093 | return 1; | 1093 | return 1; |