All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dtor_core@ameritech.net>
To: Victor Hahn <victorhahn@web.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Really annoying bug in the mouse driver
Date: Fri, 28 Jan 2005 02:06:06 -0500	[thread overview]
Message-ID: <200501280206.06747.dtor_core@ameritech.net> (raw)
In-Reply-To: <41E91795.9060609@web.de>

On Saturday 15 January 2005 08:16, Victor Hahn wrote:
> Jan 15 13:33:36 vic kernel: psmouse.c: bad data from KBC - bad parity
> Jan 15 13:33:38 vic kernel: psmouse.c: Wheel Mouse at 
> isa0060/serio1/input0 lost
>  synchronization, throwing 3 bytes away.
> 
> Sometimes, only one of these messages appears; the number of bytes in 
> the second message varies, but mostly it is 3.
> 

Hi,

Could you please try the patch below?

Thanks!

-- 
Dmitry

===== psmouse-base.c 1.88 vs edited =====
--- 1.88/drivers/input/mouse/psmouse-base.c	2005-01-27 02:13:43 -05:00
+++ edited/psmouse-base.c	2005-01-28 00:05:08 -05:00
@@ -154,9 +154,19 @@
 				flags & SERIO_TIMEOUT ? " timeout" : "",
 				flags & SERIO_PARITY ? " bad parity" : "");
 		ps2_cmd_aborted(&psmouse->ps2dev);
+		if (psmouse->resend || serio_write(serio, PSMOUSE_CMD_RESEND)) {
+			psmouse->resend = 0;
+			psmouse->state = PSMOUSE_IGNORE;
+			serio_reconnect(serio);
+		} else {
+			psmouse->pktcnt = 0;
+			psmouse->resend = 1;
+		}
 		goto out;
 	}
 
+	psmouse->resend = 0;
+
 	if (unlikely(psmouse->ps2dev.flags & PS2_FLAG_ACK))
 		if  (ps2_handle_ack(&psmouse->ps2dev, data))
 			goto out;
@@ -173,6 +183,10 @@
 		printk(KERN_WARNING "psmouse.c: %s at %s lost synchronization, throwing %d bytes away.\n",
 		       psmouse->name, psmouse->phys, psmouse->pktcnt);
 		psmouse->pktcnt = 0;
+		if (serio_write(serio, PSMOUSE_CMD_RESEND) == 0) {
+			psmouse->resend = 1;
+			psmouse->last = jiffies;
+		}
 	}
 
 	psmouse->last = jiffies;
===== psmouse.h 1.25 vs edited =====
--- 1.25/drivers/input/mouse/psmouse.h	2004-10-16 06:15:31 -05:00
+++ edited/psmouse.h	2005-01-28 00:04:47 -05:00
@@ -13,6 +13,7 @@
 #define PSMOUSE_CMD_ENABLE	0x00f4
 #define PSMOUSE_CMD_DISABLE	0x00f5
 #define PSMOUSE_CMD_RESET_DIS	0x00f6
+#define PSMOUSE_CMD_RESEND	0x00fe
 #define PSMOUSE_CMD_RESET_BAT	0x02ff
 
 #define PSMOUSE_RET_BAT		0xaa
@@ -45,6 +46,7 @@
 	unsigned char pktsize;
 	unsigned char type;
 	unsigned char model;
+	unsigned char resend;
 	unsigned long last;
 	unsigned long out_of_sync;
 	enum psmouse_state state;

  reply	other threads:[~2005-01-28  7:06 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-15 13:16 Really annoying bug in the mouse driver Victor Hahn
2005-01-28  7:06 ` Dmitry Torokhov [this message]
2005-02-01  8:54   ` Victor Hahn
2005-02-01 13:56     ` Dmitry Torokhov
2005-02-01 14:19       ` Victor Hahn
2005-02-01 23:19         ` Dmitry Torokhov
2005-02-02  6:08           ` Victor Hahn
2005-02-02  6:26             ` Dmitry Torokhov
2005-02-02 10:22               ` Victor Hahn
2005-02-02 15:44                 ` Dmitry Torokhov
2005-02-03 15:05                   ` Victor Hahn
2005-02-03 15:17                     ` Dmitry Torokhov
2005-02-01 13:29   ` zhilla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200501280206.06747.dtor_core@ameritech.net \
    --to=dtor_core@ameritech.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=victorhahn@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.