summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Drake <dsd@laptop.org>2010-11-15 01:28:54 -0800
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2010-11-15 01:33:47 -0800
commit67f56bb0f4997b55291c162077e02e4f29639fc2 (patch)
treeb12990c21c48da67a642410888c5e823e2b2f172
parent87abb6bbdbcfbced2ce0bcad68dd89ac3ff9464b (diff)
downloadlinux-67f56bb0f4997b55291c162077e02e4f29639fc2.tar.gz
linux-67f56bb0f4997b55291c162077e02e4f29639fc2.tar.bz2
linux-67f56bb0f4997b55291c162077e02e4f29639fc2.zip
Input: hgpk - detect simple mode overflows
Based on work by Paul Fox. Signed-off-by: Daniel Drake <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r--drivers/input/mouse/hgpk.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/input/mouse/hgpk.c b/drivers/input/mouse/hgpk.c
index b54f074ec307..7f6cb32d177a 100644
--- a/drivers/input/mouse/hgpk.c
+++ b/drivers/input/mouse/hgpk.c
@@ -431,6 +431,11 @@ static void hgpk_process_simple_packet(struct psmouse *psmouse)
int x = packet[1] - ((packet[0] << 4) & 0x100);
int y = ((packet[0] << 3) & 0x100) - packet[2];
+ if (packet[0] & 0xc0)
+ hgpk_dbg(psmouse,
+ "overflow -- 0x%02x 0x%02x 0x%02x\n",
+ packet[0], packet[1], packet[2]);
+
if (hgpk_discard_decay_hack(psmouse, x, y)) {
if (tpdebug)
hgpk_dbg(psmouse, "discarding\n");