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) {
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
>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
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
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