2005-02-08 23:42:10

by Dmitry Torokhov

[permalink] [raw]
Subject: [PATCH] Fix ALPS sync loss

Hi,

Here is the promised patch. It turns out protocol validation code was
a bit (or rather a byte ;) ) off.

Please let me know if it fixes your touchpad and I believe it would be
nice to have it in 2.6.11.

--
Dmitry


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


[email protected], 2005-02-08 18:12:06-05:00, [email protected]
Input: alps - fix protocol validation rules causing touchpad
to lose sync if an absolute packet is received after
a relative packet with negative Y displacement.

Signed-off-by: Dmitry Torokhov <[email protected]>



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


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



diff -Nru a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
--- a/drivers/input/mouse/alps.c 2005-02-08 18:16:27 -05:00
+++ b/drivers/input/mouse/alps.c 2005-02-08 18:16:27 -05:00
@@ -198,8 +198,8 @@
return PSMOUSE_BAD_DATA;

/* Bytes 2 - 6 should have 0 in the highest bit */
- if (psmouse->pktcnt > 1 && psmouse->pktcnt <= 6 &&
- (psmouse->packet[psmouse->pktcnt] & 0x80))
+ if (psmouse->pktcnt >= 2 && psmouse->pktcnt <= 6 &&
+ (psmouse->packet[psmouse->pktcnt - 1] & 0x80))
return PSMOUSE_BAD_DATA;

if (psmouse->pktcnt == 6) {


2005-02-09 07:22:46

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: [PATCH] Fix ALPS sync loss

On Tue, Feb 08, 2005 at 06:40:12PM -0500, Dmitry Torokhov wrote:
> Hi,
>
> Here is the promised patch. It turns out protocol validation code was
> a bit (or rather a byte ;) ) off.
>
> Please let me know if it fixes your touchpad and I believe it would be
> nice to have it in 2.6.11.

Yes, I can't reproduce sync losses that were possible to create with
simultaneous use of the pad anf the touchpoint. Patch applied.

>
> ===================================================================
>
>
> [email protected], 2005-02-08 18:12:06-05:00, [email protected]
> Input: alps - fix protocol validation rules causing touchpad
> to lose sync if an absolute packet is received after
> a relative packet with negative Y displacement.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
>
>
>
> alps.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
>
> ===================================================================
>
>
>
> diff -Nru a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> --- a/drivers/input/mouse/alps.c 2005-02-08 18:16:27 -05:00
> +++ b/drivers/input/mouse/alps.c 2005-02-08 18:16:27 -05:00
> @@ -198,8 +198,8 @@
> return PSMOUSE_BAD_DATA;
>
> /* Bytes 2 - 6 should have 0 in the highest bit */
> - if (psmouse->pktcnt > 1 && psmouse->pktcnt <= 6 &&
> - (psmouse->packet[psmouse->pktcnt] & 0x80))
> + if (psmouse->pktcnt >= 2 && psmouse->pktcnt <= 6 &&
> + (psmouse->packet[psmouse->pktcnt - 1] & 0x80))
> return PSMOUSE_BAD_DATA;
>
> if (psmouse->pktcnt == 6) {
>

--
Vojtech Pavlik
SuSE Labs, SuSE CR

2005-02-09 17:36:27

by Joseph Pingenot

[permalink] [raw]
Subject: Re: [PATCH] Fix ALPS sync loss

>From Dmitry Torokhov on Tuesday, 08 February, 2005:
>Hi,
>Here is the promised patch. It turns out protocol validation code was
>a bit (or rather a byte ;) ) off.
>Please let me know if it fixes your touchpad and I believe it would be
>nice to have it in 2.6.11.

This patch seems to be working for me too. Thanks a million, Dmitry!
I owe you a beer some time. :)

-Joseph

>===================================================================
>[email protected], 2005-02-08 18:12:06-05:00, [email protected]
> Input: alps - fix protocol validation rules causing touchpad
> to lose sync if an absolute packet is received after
> a relative packet with negative Y displacement.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
> alps.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>===================================================================
>diff -Nru a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
>--- a/drivers/input/mouse/alps.c 2005-02-08 18:16:27 -05:00
>+++ b/drivers/input/mouse/alps.c 2005-02-08 18:16:27 -05:00
>@@ -198,8 +198,8 @@
> return PSMOUSE_BAD_DATA;
>
> /* Bytes 2 - 6 should have 0 in the highest bit */
>- if (psmouse->pktcnt > 1 && psmouse->pktcnt <= 6 &&
>- (psmouse->packet[psmouse->pktcnt] & 0x80))
>+ if (psmouse->pktcnt >= 2 && psmouse->pktcnt <= 6 &&
>+ (psmouse->packet[psmouse->pktcnt - 1] & 0x80))
> return PSMOUSE_BAD_DATA;
>
> if (psmouse->pktcnt == 6) {

--
Joseph===============================================trelane@digitasaru.net
Graduate Student in Physics, Freelance Free Software Developer

2005-02-10 19:09:14

by Pete Zaitcev

[permalink] [raw]
Subject: Re: [PATCH] Fix ALPS sync loss

On Tue, 8 Feb 2005 18:40:12 -0500, Dmitry Torokhov <[email protected]> wrote:

> Here is the promised patch. It turns out protocol validation code was
> a bit (or rather a byte ;) ) off.

> +++ b/drivers/input/mouse/alps.c 2005-02-08 18:16:27 -05:00
> @@ -198,8 +198,8 @@
> return PSMOUSE_BAD_DATA;
>
> /* Bytes 2 - 6 should have 0 in the highest bit */
> - if (psmouse->pktcnt > 1 && psmouse->pktcnt <= 6 &&
> - (psmouse->packet[psmouse->pktcnt] & 0x80))
> + if (psmouse->pktcnt >= 2 && psmouse->pktcnt <= 6 &&
> + (psmouse->packet[psmouse->pktcnt - 1] & 0x80))
> return PSMOUSE_BAD_DATA;

This seems to work here, no more dead pad.

-- Pete

2005-02-10 19:54:07

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] Fix ALPS sync loss

On Wed, 9 Feb 2005 11:35:34 -0600, Joseph Pingenot
<[email protected]> wrote:
> From Dmitry Torokhov on Tuesday, 08 February, 2005:
> >Hi,
> >Here is the promised patch. It turns out protocol validation code was
> >a bit (or rather a byte ;) ) off.
> >Please let me know if it fixes your touchpad and I believe it would be
> >nice to have it in 2.6.11.
>
> This patch seems to be working for me too. Thanks a million, Dmitry!
> I owe you a beer some time. :)
>

You are welcome. I am glad we got your touchpad going.

--
Dmitry