diff options
author | JJ Ding <jj_ding@emc.com.tw> | 2011-09-09 13:22:19 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2011-09-09 13:34:25 -0400 |
commit | 1155961946f2c6ac0f2db2bc6318ec01c79fb3fa (patch) | |
tree | cb06a7c54103c63c3e137f572140ad53f04b726f /drivers/input/mouse | |
parent | b6b1e927cec6b472578402f07f5befa79a96818d (diff) |
Input: elantech - correct x, y value range for v2 hardware
x, y values are actually 12-bit long. Also update protocol document to
reflect the change.
Signed-off-by: JJ Ding <jj_ding@emc.com.tw>
Acked-by: Daniel Kurtz <djkurtz@chromium.org>
Acked-by: Éric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/mouse')
-rw-r--r-- | drivers/input/mouse/elantech.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c index 32503565faf9..da161dae3502 100644 --- a/drivers/input/mouse/elantech.c +++ b/drivers/input/mouse/elantech.c | |||
@@ -290,15 +290,15 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) | |||
290 | /* pass through... */ | 290 | /* pass through... */ |
291 | case 1: | 291 | case 1: |
292 | /* | 292 | /* |
293 | * byte 1: . . . . . x10 x9 x8 | 293 | * byte 1: . . . . x11 x10 x9 x8 |
294 | * byte 2: x7 x6 x5 x4 x4 x2 x1 x0 | 294 | * byte 2: x7 x6 x5 x4 x4 x2 x1 x0 |
295 | */ | 295 | */ |
296 | x1 = ((packet[1] & 0x07) << 8) | packet[2]; | 296 | x1 = ((packet[1] & 0x0f) << 8) | packet[2]; |
297 | /* | 297 | /* |
298 | * byte 4: . . . . . . y9 y8 | 298 | * byte 4: . . . . y11 y10 y9 y8 |
299 | * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 | 299 | * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 |
300 | */ | 300 | */ |
301 | y1 = ETP_YMAX_V2 - (((packet[4] & 0x03) << 8) | packet[5]); | 301 | y1 = ETP_YMAX_V2 - (((packet[4] & 0x0f) << 8) | packet[5]); |
302 | 302 | ||
303 | input_report_abs(dev, ABS_X, x1); | 303 | input_report_abs(dev, ABS_X, x1); |
304 | input_report_abs(dev, ABS_Y, y1); | 304 | input_report_abs(dev, ABS_Y, y1); |