Messages in this thread Patch in this message | | | From | Dmitry Torokhov <> | Subject | Re: mouse issues in 2.6.15-rc5-mm series | Date | Sat, 24 Dec 2005 12:56:51 -0500 |
| |
On Saturday 24 December 2005 01:43, Joe Feise wrote: > [Note: please cc me on answers since I'm not subscribed to the kernel list] > > I am experiencing problems with mouse resyncing in the -mm series. > This is a Logitech wheel mouse connected through a KVM. > Symptom: whenever the mouse isn't moved for some seconds, it doesn't > react to movement for a second, and then resyncs. Sometimes, the > resyncing results in the mouse pointer jumping, which as far as I > know is a protocol mismatch. > While searching for reports of similar problems, I came across > Frank Sorenson's post from Nov. 23 (http://lkml.org/lkml/2005/11/23/533). > Like in his case, reverting > input-attempt-to-re-synchronize-mouse-every-5-seconds.patch > resulted in a kernel without this problem. >
Joe,
Instead of reverting input-attempt-to-re-synchronize-mouse-every-5-seconds patch could youplease drop the patch below on top of -mm.
Jet me know if your mouse stays synchronized. Thanks!
-- Dmitry
drivers/input/mouse/psmouse-base.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
Index: linux/drivers/input/mouse/psmouse-base.c =================================================================== --- linux.orig/drivers/input/mouse/psmouse-base.c +++ linux/drivers/input/mouse/psmouse-base.c @@ -1029,6 +1029,23 @@ static int psmouse_switch_protocol(struc else psmouse->type = psmouse_extensions(psmouse, psmouse_max_proto, 1); + /* + * If mouse's packet size is 3 there is no point in polling the + * device in hopes to detect protocol reset - we won't get less + * than 3 bytes response anyhow. + */ + if (psmouse->pktsize == 3) + psmouse->resync_time = 0; + + /* + * Some smart KVMs fake response to POLL command returning just + * 3 bytes and messing up our resync logic, so if initial poll + * fails we won't try polling the device anymore. Hopefully + * such KVM will maintain initially selected protocol. + */ + if (psmouse->resync_time && psmouse->poll(psmouse)) + psmouse->resync_time = 0; + sprintf(psmouse->devname, "%s %s %s", psmouse_protocol_by_type(psmouse->type)->name, psmouse->vendor, psmouse->name); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |