Re: [PATCH] make psaux reconnect adjustable

Gunther Mayer (Gunther.Mayer@t-online.de)
Tue, 14 Aug 2001 19:10:26 +0200


Andries.Brouwer@cwi.nl wrote:
>
> From garloff@garloff.de Tue Aug 14 11:57:23 2001
>
> I can confirm what you suggest:
> My mouse (Logitech wheel USB/PS2) sends indeed AA 00.
> So, I extended my patch:
> psmouse_reconnect = 0: Do nothing (just pass all to userspace)
> psmouse_reconnect = 1: Flush Q & ping mouse on AA 00 (default)
> psmouse_reconnect = 2: Flush Q & ping mouse on AA (old behaviour)
>
> With reconnect 1 or 2: After reconnecting, mouse behaves strange
> (jumping around the screen)

This is a serious bug in many user-space drivers. PS/2 mouse protocol
was designed to easily re-synchronize (think about transmission errors/
lost bytes).

> With reconnect 0: Mouse is dead

This is a bug in all user-space drivers (understandable as the
kernel tried to be too clever). They must send the proper ps2-enabling
sequence after they see "aa 00".

>
> In both cases restarting gpm gets the mouse back to work again.
> It seems the imps2 driver does some initialization to the mouse.
>
> If I use the plain ps2 driver, then finally, I see the benefit of the
> reconnect code in the kernel:
> With reconnect = 1 or 2: It works after replugging
> With reconnect = 0: Mouse is dead after replugging
>
> In the latter case restarting gpm helps.
...

Add an "ioctl(PS2_TRANSPARENT)", to disable the current kernel policy.
So new drivers which understand about "aa 00" sequences can act properly.
Don't break existing apps.
-
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/