From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Torokhov Subject: Re: [PATCH v3 3/4] input: alps: For protocol V3, do not process data when last packet's bit7 is set Date: Sun, 9 Nov 2014 12:34:59 -0800 Message-ID: <20141109203459.GB37384@dtor-ws> References: <1412329392-5580-1-git-send-email-pali.rohar@gmail.com> <1414884310-19842-4-git-send-email-pali.rohar@gmail.com> <20141109075039.GA34700@dtor-ws> <201411091222.59595@pali> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: Received: from mail-ig0-f180.google.com ([209.85.213.180]:49881 "EHLO mail-ig0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751095AbaKIUfF (ORCPT ); Sun, 9 Nov 2014 15:35:05 -0500 Content-Disposition: inline In-Reply-To: <201411091222.59595@pali> Sender: linux-input-owner@vger.kernel.org List-Id: linux-input@vger.kernel.org To: Pali =?iso-8859-1?Q?Roh=E1r?= Cc: Hans de Goede , Yunkang Tang , Tommy Will , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org On Sun, Nov 09, 2014 at 12:22:51PM +0100, Pali Roh=E1r wrote: > On Sunday 09 November 2014 08:50:39 Dmitry Torokhov wrote: > > Hi Pali, > >=20 > > On Sun, Nov 02, 2014 at 12:25:09AM +0100, Pali Roh=E1r wrote: > > > Sometimes on Dell Latitude laptops psmouse/alps driver > > > receive invalid ALPS protocol V3 packets with bit7 set in > > > last byte. More often it can be reproduced on Dell Latitude > > > E6440 or E7440 with closed lid and pushing cover above > > > touchpad. > > >=20 > > > If bit7 in last packet byte is set then it is not valid ALPS > > > packet. I was told that ALPS devices never send these > > > packets. It is not know yet who send those packets, it > > > could be Dell EC, bug in BIOS and also bug in touchpad > > > firmware... > > >=20 > > > With this patch alps driver does not process those invalid > > > packets and drops it with PSMOUSE_FULL_PACKET so psmouse > > > driver does not enter to out of sync state. > > >=20 > > > This patch fix problem when psmouse driver still resetting > > > ALPS device when laptop lid is closed because of receiving > > > invalid packets in out of sync state. > > >=20 > > > Signed-off-by: Pali Roh=E1r > > > Tested-by: Pali Roh=E1r > > > Cc: stable@vger.kernel.org > > > --- > > >=20 > > > drivers/input/mouse/alps.c | 10 ++++++++++ > > > 1 file changed, 10 insertions(+) > > >=20 > > > diff --git a/drivers/input/mouse/alps.c > > > b/drivers/input/mouse/alps.c index 7c47e97..e802d28 100644 > > > --- a/drivers/input/mouse/alps.c > > > +++ b/drivers/input/mouse/alps.c > > > @@ -1181,6 +1181,16 @@ static psmouse_ret_t > > > alps_process_byte(struct psmouse *psmouse) > > >=20 > > > return PSMOUSE_BAD_DATA; > > > =09 > > > } > > >=20 > > > + if (priv->proto_version =3D=3D ALPS_PROTO_V3 && > > > psmouse->pktcnt =3D=3D psmouse->pktsize) { + // For protocol > > > V3, do not process data when last packet's bit7 is set > > > + if (psmouse->packet[psmouse->pktcnt - 1] & 0x80) { > > > + psmouse_dbg(psmouse, "v3 discard packet[%i] =3D=20 > %x\n", > > > + psmouse->pktcnt - 1, > > > + psmouse->packet[psmouse->pktcnt - 1]); > > > + return PSMOUSE_FULL_PACKET; > > > + } > > > + } > >=20 > > I wanted to apply it, but I would like some more data. Could > > you please send me the dmesg with i8042.debug wit this patch > > in place? > >=20 > > Thanks! >=20 > See attachment. It contains debug log from both i8042.debug=3D1 and=20 > psmouse.ko with applied all 4 patches. Thank you Pali. OK, so it looks like the problematic byte is the last one and we should be resynching right away. With your other patch increasing number of ba= d packets before issuing resync this special handling is no longer needed= , right? Thanks. --=20 Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" = in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html