From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59DD8C433FE for ; Fri, 10 Sep 2021 02:18:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3D8D5610E8 for ; Fri, 10 Sep 2021 02:18:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229738AbhIJCT0 (ORCPT ); Thu, 9 Sep 2021 22:19:26 -0400 Received: from emcscan.emc.com.tw ([192.72.220.5]:55756 "EHLO emcscan.emc.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229628AbhIJCTZ (ORCPT ); Thu, 9 Sep 2021 22:19:25 -0400 X-IronPort-AV: E=Sophos;i="5.56,253,1539619200"; d="scan'208";a="42672477" Received: from unknown (HELO webmail.emc.com.tw) ([192.168.10.1]) by emcscan.emc.com.tw with ESMTP; 10 Sep 2021 10:18:12 +0800 Received: from 192.168.10.23 by webmail.emc.com.tw with MailAudit ESMTP Server V5.0(31504:0:AUTH_RELAY) (envelope-from ); Fri, 10 Sep 2021 10:18:10 +0800 (CST) Received: from 192.168.33.13 by webmail.emc.com.tw with Mail2000 ESMTPA Server V7.00(2475:0:AUTH_LOGIN) (envelope-from ); Fri, 10 Sep 2021 10:18:08 +0800 (CST) From: "phoenix" To: "'Dmitry Torokhov'" Cc: , , , , References: <20210729010940.5752-1-phoenix@emc.com.tw> <000001d79d99$53762dd0$fa628970$@emc.com.tw> In-Reply-To: Subject: RE: [PATCH] Input: elantench - Fix the firmware misreport coordinates for trackpoint occasionally. Date: Fri, 10 Sep 2021 10:18:08 +0800 Message-ID: <005101d7a5ea$18e01d30$4aa05790$@emc.com.tw> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQGk7tjGsgsB1mM/H5Ov4MUFApOKzQImMkU5AJ1HjHOr3I7dkA== Content-Language: zh-tw x-dg-ref: PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcODgwNTFcYXBwZGF0YVxyb2FtaW5nXDA5ZDg0OWI2LTMyZDMtNGE0MC04NWVlLTZiODRiYTI5ZTM1Ylxtc2dzXG1zZy01NWZjYmI0OC0xMWRkLTExZWMtYTkyNS04OGQ3ZjY1ODJkZmNcYW1lLXRlc3RcNTVmY2JiNDktMTFkZC0xMWVjLWE5MjUtODhkN2Y2NTgyZGZjYm9keS50eHQiIHN6PSIyODM4IiB0PSIxMzI3NTcxMzg4ODA0ODgyMDciIGg9IkU4akNpY1dBdzF4R0pOU0VZU0NPQmZsNVFBUT0iIGlkPSIiIGJsPSIwIiBibz0iMSIvPjwvbWV0YT4= x-dg-rorf: true Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Dmity, Sorry for late reply. > + if (packet[4] == 0x80 || packet[5] == 0x80 || > + packet[1] >> 7 == packet[4] >> 7 || "I think this will reject X coordinates in range [0, 127]. Is this really what is needed? What kind of patterns are you observing when firmware misreports coordinates?" this will reject X in range [128, 256] and [-128, -256]. This patch prevent cursor suddenly jump to screen edge or corner. The patterns we observing as below: 1. x (packet[4]) or y (packet[5]) is 0x80, ex: [xx xx xx xx 80 80] 2. ~x sign bit is same as MSB(most significant bit) of x, ex: [30 00 00 06 00 00] 3. ~y sign bit is same as MSB of y, ex: [30 00 00 06 fa 00] Best regards, Phoenix Huang -----Original Message----- From: Dmitry Torokhov [mailto:dmitry.torokhov@gmail.com] Sent: Tuesday, August 31, 2021 4:24 AM To: phoenix Cc: linux-kernel@vger.kernel.org; linux-input@vger.kernel.org; jingle.wu@emc.com.tw; josh.chen@emc.com.tw; dave.wang@emc.com.tw Subject: Re: [PATCH] Input: elantench - Fix the firmware misreport coordinates for trackpoint occasionally. Hi Phoenix, On Mon, Aug 30, 2021 at 08:19:48PM +0800, phoenix wrote: > Hi Dmitry, > > Would you review this patch, thanks > > Best regards, > Phoenix Huang > > -----Original Message----- > From: Phoenix Huang [mailto:phoenix@emc.com.tw] > Sent: Thursday, July 29, 2021 9:10 AM > To: linux-kernel@vger.kernel.org; linux-input@vger.kernel.org; > dmitry.torokhov@gmail.com > Cc: jingle.wu@emc.com.tw; josh.chen@emc.com.tw; dave.wang@emc.com.tw; > Phoenix Huang > Subject: [PATCH] Input: elantench - Fix the firmware misreport > coordinates for trackpoint occasionally. > > Signed-off-by: Phoenix Huang > --- > drivers/input/mouse/elantech.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/input/mouse/elantech.c > b/drivers/input/mouse/elantech.c index 2d0bc029619f..07e1098f2d31 > 100644 > --- a/drivers/input/mouse/elantech.c > +++ b/drivers/input/mouse/elantech.c > @@ -517,6 +517,17 @@ static void elantech_report_trackpoint(struct > psmouse *psmouse, > case 0x16008020U: > case 0x26800010U: > case 0x36808000U: > + > + /* This firmware misreport coordinates for trackpoint > occasionally. > + * So we discard these packets by pattern to prevent cursor > jumps. > + */ > + if (packet[4] == 0x80 || packet[5] == 0x80 || > + packet[1] >> 7 == packet[4] >> 7 || I think this will reject X coordinates in range [0, 127]. Is this really what is needed? What kind of patterns are you observing when firmware misreports coordinates? Thanks. -- Dmitry