lkml.org 
[lkml]   [2000]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[: Re: [Research] Synatics Touchpad (PS/2) and 2.2.16]
Hi,

updating my laptop (Acer TM 512T) to 2.2.16 (-SuSE which is a 17pre1x with
some additional drivers and some of Andrea's VM fixes), I started to have a
lot of trouble with the builtin Synaptics Touchpad.

Using the touchpad, it suddenly started to stop working for a couple of
seconds and GPM logged Tossing PS/2 data messages.\ to the syslog.

It turned out to be a problem in the kernel's psaux driver.

Here's the patch that caused the problem.

--- linux-2.2.14.SuSE/drivers/char/pc_keyb.c Sat Mar 18 22:31:46 2000
+++ linux.susefont/drivers/char/pc_keyb.c Mon Jul 17 22:36:18 2000
@@ -73,6 +76,9 @@

static int __init psaux_init(void);

+#define AUX_RECONNECT 170
+/* #define CHECK_RECONNECT_SCANCODE 1 */
+
static struct aux_queue *queue; /* Mouse data buffer. */
static int aux_count = 0;
/* used when we send commands to the mouse that expect an ACK. */
@@ -393,6 +399,19 @@
}
mouse_reply_expected = 0;
}
+ else if(scancode == AUX_RECONNECT){
+ queue->head = queue->tail = 0; /* Flush input queue */
+ /*
+ * need this stuff? seems to work fine w/o it for me
+ aux_write_ack(AUX_SET_SAMPLE);
+ aux_write_ack(100);
+ aux_write_ack(AUX_SET_RES);
+ aux_write_ack(3);
+ aux_write_ack(AUX_SET_SCALE21);
+ */
+ aux_write_ack(AUX_ENABLE_DEV); /* ping the mouse :) */
+ return;
+ }

add_mouse_randomness(scancode);
if (aux_count) {

Commenting out the check for AUX_RECONNECT does cure my problems.

Apparently, the synps2 does send the reconnect scancode for normal (or
special enhanced synps/2) mouse events.

The question is how this can be solved in a general way. I guess the code
was introduced to solve some problem. (Does the kernel get this scancode
when you plug a PS/2 mouse?)
How can we do it?
* Make the kernel recognize synps2 and ignore AUX_RECONNECT then.
* Make the gpm -tsynps2 do an ioctl on psaux which makes the kernel
ignore ...
* Make the kernel aware of some state (mouse connected?) and only handle
AUX_RECONNECT in case the mouse is not already connected.

I have not the slightest clue about PS/2 protocol, so I'd prefer somebody
with more knowledge to have a look into this.

Regards,
--
Kurt Garloff <garloff@suse.de> Eindhoven, NL
GPG key: See mail header, key servers Linux kernel development
SuSE GmbH, Nuernberg, FRG SCSI, Security



----- End forwarded message -----
--
Kurt Garloff <kurt@garloff.de> [Eindhoven, NL]
Physics: Plasma simulations <k.garloff@phys.tue.nl> [TU Eindhoven, NL]
Linux: SCSI, Security <garloff@suse.de> [SuSE Nuernberg, FRG]
(See mail header or public key servers for PGP2 and GPG public keys.)
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-03-22 12:38    [W:0.035 / U:13.628 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site