Re: [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet

From: Pali RohÃr
Date: Fri Oct 03 2014 - 06:05:51 EST


On Friday 03 October 2014 11:55:52 Hans de Goede wrote:
> Hi,
>
> On 10/03/2014 11:43 AM, Pali RohÃr wrote:
> > For unknown reasons linux psmouse alps driver sometimes
> > receive totally invalid packet sequences on Dell Latitude
> > laptops. According to ALPS HW engineers these invalid
> > packets do not come from ALPS devices. So it looks like bug
> > in BIOS and EC incorrectly split keyboard and touchpad PS/2
> > data when laptops are under heavy loads (big I/O together
> > with powersave governor, running on battery).
> >
> > There are sequences of invalid packets (which are dropeed)
> > and some sequences which look like valid. But these valid
> > packets cause random trackstick button pressing, random
> > cursor moving/jumping and in these condition it is not
> > possible to use ALPS device (trackstick+touchpad).
> >
> > To prevent random button press and random cursor jumps
> > immediately reset ALPS device after first invalid packet.
> > This will cause that touchpad and trackstick will not
> > respond for one or two seconds and it better then random
> > cursor jumps.
>
> This one probably should have:
>
> Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1145954
>

Yes, in that bug is described same problem as on my E6440.

> And you may want to add Bug: tags to the relevant patches for
> the launchpad issues too.
>

I just added links to famous ALPS bugs which looks like that one
which I have on my E6440. But I'm not sure if my patches will
resolve these problems on other machines too.

> While on the topic of tags, once we've agreed upon the return
> value to use for the 2nd patch, can you please resend with a
> "Cc: stable@xxxxxxxxxxxxxxx" added to all 3 patches?
>

I would like if somebody else can test patches on other machines
with ALPS devices. Specially this third if it does not break
something else.

Note that this third patch does not fixing problem correctly with
jumping & clicking. It just immediately reset ps/2 device if it
receive invalid packages. So it only try to prevent jumping &
clicking. On my E6440 machine it somehow working. When driver
doing ps/2 reset keyboard, touchpad and trackstick not
responding. I think it is better then having random clicks but
somebody else really should try and test patches how it will work
on other machines.

Proper fix would be to understand why invalid packets are
received and try to force buggy component to not send these
invalid packets.

> > Signed-off-by: Pali RohÃr <pali.rohar@xxxxxxxxx>
> > Tested-by: Pali RohÃr <pali.rohar@xxxxxxxxx>
>
> Looks good and seems sensible:
>
> Acked-by: Hans de Goede <hdegoede@xxxxxxxxxx>
>
> Thanks & Regards,
>
> Hans

--
Pali RohÃr
pali.rohar@xxxxxxxxx

Attachment: signature.asc
Description: This is a digitally signed message part.