[patch] Re: psmouse.c, throwing 3 bytes away

From: Vojtech Pavlik
Date: Sun Feb 08 2004 - 19:50:22 EST


On Sat, Feb 07, 2004 at 09:11:42AM +0000, Murilo Pontes wrote:

> Problem still occurs :-(

And here is a fix. Damn stupid mistake I made.

--
Vojtech Pavlik
SuSE Labs, SuSE CR
You can pull this changeset from:
bk://kernel.bkbits.net/vojtech/input

===================================================================

ChangeSet@xxxxxx, 2004-02-09 01:47:16+01:00, vojtech@xxxxxxx
input: Fix "psmouse: Lost sync" problem. It was really losing sync.


i8042.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

===================================================================

diff -Nru a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
--- a/drivers/input/serio/i8042.c Mon Feb 9 01:47:46 2004
+++ b/drivers/input/serio/i8042.c Mon Feb 9 01:47:46 2004
@@ -379,9 +379,12 @@
unsigned int dfl;
int ret;

+ mod_timer(&i8042_timer, jiffies + I8042_POLL_PERIOD);
+
spin_lock_irqsave(&i8042_lock, flags);
str = i8042_read_status();
- data = i8042_read_data();
+ if (str & I8042_STR_OBF)
+ data = i8042_read_data();
spin_unlock_irqrestore(&i8042_lock, flags);

if (~str & I8042_STR_OBF) {
@@ -432,7 +435,6 @@
irq_ret:
ret = 1;
out:
- mod_timer(&i8042_timer, jiffies + I8042_POLL_PERIOD);
return IRQ_RETVAL(ret);
}