Message ID | 20221014111533.908-2-nyanpasu256@gmail.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp137224wrs; Fri, 14 Oct 2022 04:47:34 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4gru3xHa1A+s0GXFoGXLGSRR3m27bbXPqulQ4k5OyRGhZ48oga+MCbGPMQ2sNPmIu03i1U X-Received: by 2002:aa7:9397:0:b0:562:cbf1:1186 with SMTP id t23-20020aa79397000000b00562cbf11186mr4766383pfe.5.1665748054584; Fri, 14 Oct 2022 04:47:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665748054; cv=none; d=google.com; s=arc-20160816; b=H3x0fHMbhy66+gd57u+tSIRHuVRxuuOr7a/vl9P8dK/7JJzmZF1g4LttYwtbA773qV eGFvB3MvF/PC4S4F1ZE9HFbyVURF2xyJh9gjzgD14OmsxQ83WEyYaZnEDIHYZmhzIFG9 pZ2O8YZYvx00RV4Dl/C60aZFdtauQ8aKOqrx7cDurFcVEEN6cJxEVIR57g7h2zh3YaPc l2VELTFqx2tOCwx7FRie/df866rX8FxwR05G3v31OVrBI5WP/xQ0CUB4TxWb/23ivoG4 K0/VDwrAktPZUUARrrmZxOAXDzv7sVABUeYiPvGzHgN8AZJBXS1mCfv4PJiPNYKfAchE vZag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=gLxzw5+5P9J9R3KO3i/HaA++CGx0Vnt/e4O2kC9C4sY=; b=C0S3Y6ZPAKrGtG+d7h6CYuDUapEiVeOU9/GkCMnGv8ni+s6D7VOFLeS+BU2E4A1VBL 9JRrv1CpmEozJPmwNjg7sX5/7HkmK52/ojXESX5hfpb11cZkHgTzIbC6WaVTWdMPL3jd Zp1+etFwWWktDbu4k/U6ZwMNHt9GRq62VGOm0O3Y/678UJgIj8JNVK7teJ4sb2okeMVs ePAy4ZdKvW7kGZcO0WW8jDWDc+h7L/wXN7VYykDXoj+CCTaIkOGvd4bcgk+Huxz5/3sF oD50ezML9Z057mvplwed/IE3hqf61NnDQuMUgAsDA3uLOzp87shxKzIzZBLkhibR8usQ g/lA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=FG+KOruD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l3-20020a655603000000b00434dd5dc135si2509705pgs.855.2022.10.14.04.47.19; Fri, 14 Oct 2022 04:47:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=FG+KOruD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229899AbiJNLQj (ORCPT <rfc822;ouuuleilei@gmail.com> + 99 others); Fri, 14 Oct 2022 07:16:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58472 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229836AbiJNLQ0 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 14 Oct 2022 07:16:26 -0400 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 675FD105650; Fri, 14 Oct 2022 04:16:23 -0700 (PDT) Received: by mail-pl1-x62d.google.com with SMTP id f23so4437167plr.6; Fri, 14 Oct 2022 04:16:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gLxzw5+5P9J9R3KO3i/HaA++CGx0Vnt/e4O2kC9C4sY=; b=FG+KOruDTgIzTuTp8m9ioJeEVGqdp7cK890uLZClBTnm+jYTSIPQ1ogCsr5npYoWQ7 aGYvQpJcm+qscQAW+134W75E4i4FIMU4ThzQm+Mz1aWKjBvw31aIf1BHvrmyHdk/pDlr YFQ3lO1CnuUEmOLgnsA7J6YVRIAZfFysb+2RdA0erk9bnmRddZ1ubMgDrKz01lUK+mVX Q4vsW9l9HUOvxU99HhHfcChm4dJLYlLb+tTG1W4vcPwqJZvrN6EJX4/j8F8BbdnUfYND 3rThUKaIcCKKCXRihoVPwneY/1+QX3AdKg7mHNEXg+U7iXPB5B/Qesvph3OdVnkMsen9 H1HA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gLxzw5+5P9J9R3KO3i/HaA++CGx0Vnt/e4O2kC9C4sY=; b=Uus+Txa56MyD32Lai+o8BAvu/wVIjdL6rxe+61OSLUBeIZonHHDeFTnaURJQCTIRf7 yr18YE1uYcZEJtiUat9TdisV8vLEF3TlqZPkZSFPZwZVvt7tx6+nRdUa8btWVKQAXyWA auaqBgGFeIlTTZ3JVozSS7jvl0RNZx5f7B7UwNJEskSDHo5kNkv+TMFmxrWBjE8twfSl Qc8fCA2Ftx1y0Lb2KANu9D+BnjjhcHkeSfpjc6quR4SQrZt6op0ppAwMD6Gyy5cey0IW YgTMgK8i7DUNKe2+OQbxxBnAIW/6cmsI2acMQeC3OPmPM4TS16hpVUXrM5vd59m+WZrM EsIQ== X-Gm-Message-State: ACrzQf3hKQpioiB6cQDWLBGwzcu+Pg7yd1IX9u6y8sja6WCah9HNU8pg ngw73ElvY/PtbTXblo6hYIrqGfktYSRynA== X-Received: by 2002:a17:903:1d1:b0:17f:6494:f8c3 with SMTP id e17-20020a17090301d100b0017f6494f8c3mr4536833plh.157.1665746182056; Fri, 14 Oct 2022 04:16:22 -0700 (PDT) Received: from dell-void.nyanpasu256.gmail.com.beta.tailscale.net (c-71-202-83-242.hsd1.ca.comcast.net. [71.202.83.242]) by smtp.gmail.com with ESMTPSA id n9-20020a17090aab8900b001fd6066284dsm1304628pjq.6.2022.10.14.04.16.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Oct 2022 04:16:21 -0700 (PDT) From: Eirin Nya <nyanpasu256@gmail.com> To: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Eirin Nya <nyanpasu256@gmail.com> Subject: [PATCH V2 1/3] Input: elantech - Remove redundant field elantech_data::y_max Date: Fri, 14 Oct 2022 04:15:31 -0700 Message-Id: <20221014111533.908-2-nyanpasu256@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20221014111533.908-1-nyanpasu256@gmail.com> References: <20221014111533.908-1-nyanpasu256@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1746663432390865003?= X-GMAIL-MSGID: =?utf-8?q?1746663432390865003?= |
Series |
Input: Fix incorrectly halved touchpad range on ELAN v3 touchpads
|
|
Commit Message
Eirin Nya
Oct. 14, 2022, 11:15 a.m. UTC
elantech_data::y_max is copied from elantech_device_info::y_max, and
neither is mutated after initialization. So remove the redundant
variable to prevent future bugs when updating y_max.
Signed-off-by: Eirin Nya <nyanpasu256@gmail.com>
---
drivers/input/mouse/elantech.c | 17 ++++++++---------
drivers/input/mouse/elantech.h | 1 -
2 files changed, 8 insertions(+), 10 deletions(-)
Comments
On Fri, Oct 14, 2022 at 04:15, Eirin Nya <nyanpasu256@gmail.com> wrote: > elantech_data::y_max is copied from elantech_device_info::y_max, and > neither is mutated after initialization. So remove the redundant > variable to prevent future bugs when updating y_max. > > Signed-off-by: Eirin Nya <nyanpasu256@gmail.com> Hi Eirin, Thank you for v2. I know you're new to kernel development so here is some more "process feedback". I've already reviewed this in v1: https://lore.kernel.org/all/87ilkv7ogc.fsf@mkorpershoek-xps-13-9370.home/ After getting a "Reviewed-by" reply on one of the patches, it is customary to add that in the commit message footer, if the patch is unchanged. This encourages reviewers and gives them some credit for their review :) This is documented at: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#reviewer-s-statement-of-oversight To quote the doc: > Both Tested-by and Reviewed-by tags, once received on mailing list from > tester or reviewer, should be added by author to the applicable patches > when sending next versions. So please, if you have to send a v3 at some point, please add: Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> Note that it's not needed to send a v3 *JUST* to include the trailers. The maintainer will pick them up if he decides to merge this. > --- > drivers/input/mouse/elantech.c | 17 ++++++++--------- > drivers/input/mouse/elantech.h | 1 - > 2 files changed, 8 insertions(+), 10 deletions(-) > > diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c > index ece97f8c6a..79e31611fc 100644 > --- a/drivers/input/mouse/elantech.c > +++ b/drivers/input/mouse/elantech.c > @@ -360,7 +360,7 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse) > input_report_abs(dev, ABS_X, > ((packet[1] & 0x0c) << 6) | packet[2]); > input_report_abs(dev, ABS_Y, > - etd->y_max - (((packet[1] & 0x03) << 8) | packet[3])); > + etd->info.y_max - (((packet[1] & 0x03) << 8) | packet[3])); > } > > input_report_key(dev, BTN_TOOL_FINGER, fingers == 1); > @@ -435,7 +435,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) > * byte 4: . . . . y11 y10 y9 y8 > * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 > */ > - y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); > + y1 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); > > pres = (packet[1] & 0xf0) | ((packet[4] & 0xf0) >> 4); > width = ((packet[0] & 0x30) >> 2) | ((packet[3] & 0x30) >> 4); > @@ -450,7 +450,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) > */ > x1 = (((packet[0] & 0x10) << 4) | packet[1]) << 2; > /* byte 2: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 */ > - y1 = etd->y_max - > + y1 = etd->info.y_max - > ((((packet[0] & 0x20) << 3) | packet[2]) << 2); > /* > * byte 3: . . by8 bx8 . . . . > @@ -458,7 +458,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) > */ > x2 = (((packet[3] & 0x10) << 4) | packet[4]) << 2; > /* byte 5: by7 by8 by5 by4 by3 by2 by1 by0 */ > - y2 = etd->y_max - > + y2 = etd->info.y_max - > ((((packet[3] & 0x20) << 3) | packet[5]) << 2); > > /* Unknown so just report sensible values */ > @@ -579,7 +579,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, > * byte 4: . . . . y11 y10 y9 y8 > * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 > */ > - y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); > + y1 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); > break; > > case 2: > @@ -593,7 +593,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, > * byte 4: . . . . ay11 ay10 ay9 ay8 > * byte 5: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 > */ > - etd->mt[0].y = etd->y_max - > + etd->mt[0].y = etd->info.y_max - > (((packet[4] & 0x0f) << 8) | packet[5]); > /* > * wait for next packet > @@ -605,7 +605,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, > x1 = etd->mt[0].x; > y1 = etd->mt[0].y; > x2 = ((packet[1] & 0x0f) << 8) | packet[2]; > - y2 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); > + y2 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); > break; > } > > @@ -681,7 +681,7 @@ static void process_packet_head_v4(struct psmouse *psmouse) > return; > > etd->mt[id].x = ((packet[1] & 0x0f) << 8) | packet[2]; > - etd->mt[id].y = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); > + etd->mt[id].y = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); > pres = (packet[1] & 0xf0) | ((packet[4] & 0xf0) >> 4); > traces = (packet[0] & 0xf0) >> 4; > > @@ -1253,7 +1253,6 @@ static int elantech_set_input_params(struct psmouse *psmouse) > input_abs_set_res(dev, ABS_MT_POSITION_Y, info->y_res); > } > > - etd->y_max = y_max; > etd->width = width; > > return 0; > diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h > index 571e6ca11d..1ec004f72d 100644 > --- a/drivers/input/mouse/elantech.h > +++ b/drivers/input/mouse/elantech.h > @@ -180,7 +180,6 @@ struct elantech_data { > unsigned char reg_25; > unsigned char reg_26; > unsigned int single_finger_reports; > - unsigned int y_max; > unsigned int width; > struct finger_pos mt[ETP_MAX_FINGERS]; > unsigned char parity[256]; > -- > 2.38.0
Hi, Is there any progress on incorporating this patch into mainline Linux? Every time my rolling distro updates its kernel minor/patch version, I get a broken touchpad until I rebase and reapply my patch, then rebuild and install the psmouse kernel module. I've had to do this so many times I wrote a script to automate this process for new kernel patch versions (and have to fix the script for new minor/major versions since I didn't figure out string parsing in Bash, or if I switched Linux distros). Thanks, Eirin On 10/14/22 6:10 AM, Mattijs Korpershoek wrote: > On Fri, Oct 14, 2022 at 04:15, Eirin Nya <nyanpasu256@gmail.com> wrote: > >> elantech_data::y_max is copied from elantech_device_info::y_max, and >> neither is mutated after initialization. So remove the redundant >> variable to prevent future bugs when updating y_max. >> >> Signed-off-by: Eirin Nya <nyanpasu256@gmail.com> > > Hi Eirin, > > Thank you for v2. I know you're new to kernel development so here is > some more "process feedback". > > I've already reviewed this in v1: > https://lore.kernel.org/all/87ilkv7ogc.fsf@mkorpershoek-xps-13-9370.home/ > > After getting a "Reviewed-by" reply on one of the patches, it is > customary to add that in the commit message footer, if the patch is > unchanged. This encourages reviewers and gives them some credit for > their review :) > > This is documented at: > https://www.kernel.org/doc/html/latest/process/submitting-patches.html#reviewer-s-statement-of-oversight > > To quote the doc: >> Both Tested-by and Reviewed-by tags, once received on mailing list from >> tester or reviewer, should be added by author to the applicable patches >> when sending next versions. > > So please, if you have to send a v3 at some point, please add: > > Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> > > Note that it's not needed to send a v3 *JUST* to include the trailers. > The maintainer will pick them up if he decides to merge this. > >> --- >> drivers/input/mouse/elantech.c | 17 ++++++++--------- >> drivers/input/mouse/elantech.h | 1 - >> 2 files changed, 8 insertions(+), 10 deletions(-) >> >> diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c >> index ece97f8c6a..79e31611fc 100644 >> --- a/drivers/input/mouse/elantech.c >> +++ b/drivers/input/mouse/elantech.c >> @@ -360,7 +360,7 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse) >> input_report_abs(dev, ABS_X, >> ((packet[1] & 0x0c) << 6) | packet[2]); >> input_report_abs(dev, ABS_Y, >> - etd->y_max - (((packet[1] & 0x03) << 8) | packet[3])); >> + etd->info.y_max - (((packet[1] & 0x03) << 8) | packet[3])); >> } >> >> input_report_key(dev, BTN_TOOL_FINGER, fingers == 1); >> @@ -435,7 +435,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) >> * byte 4: . . . . y11 y10 y9 y8 >> * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 >> */ >> - y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >> + y1 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >> >> pres = (packet[1] & 0xf0) | ((packet[4] & 0xf0) >> 4); >> width = ((packet[0] & 0x30) >> 2) | ((packet[3] & 0x30) >> 4); >> @@ -450,7 +450,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) >> */ >> x1 = (((packet[0] & 0x10) << 4) | packet[1]) << 2; >> /* byte 2: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 */ >> - y1 = etd->y_max - >> + y1 = etd->info.y_max - >> ((((packet[0] & 0x20) << 3) | packet[2]) << 2); >> /* >> * byte 3: . . by8 bx8 . . . . >> @@ -458,7 +458,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) >> */ >> x2 = (((packet[3] & 0x10) << 4) | packet[4]) << 2; >> /* byte 5: by7 by8 by5 by4 by3 by2 by1 by0 */ >> - y2 = etd->y_max - >> + y2 = etd->info.y_max - >> ((((packet[3] & 0x20) << 3) | packet[5]) << 2); >> >> /* Unknown so just report sensible values */ >> @@ -579,7 +579,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, >> * byte 4: . . . . y11 y10 y9 y8 >> * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 >> */ >> - y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >> + y1 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >> break; >> >> case 2: >> @@ -593,7 +593,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, >> * byte 4: . . . . ay11 ay10 ay9 ay8 >> * byte 5: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 >> */ >> - etd->mt[0].y = etd->y_max - >> + etd->mt[0].y = etd->info.y_max - >> (((packet[4] & 0x0f) << 8) | packet[5]); >> /* >> * wait for next packet >> @@ -605,7 +605,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, >> x1 = etd->mt[0].x; >> y1 = etd->mt[0].y; >> x2 = ((packet[1] & 0x0f) << 8) | packet[2]; >> - y2 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >> + y2 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >> break; >> } >> >> @@ -681,7 +681,7 @@ static void process_packet_head_v4(struct psmouse *psmouse) >> return; >> >> etd->mt[id].x = ((packet[1] & 0x0f) << 8) | packet[2]; >> - etd->mt[id].y = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >> + etd->mt[id].y = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >> pres = (packet[1] & 0xf0) | ((packet[4] & 0xf0) >> 4); >> traces = (packet[0] & 0xf0) >> 4; >> >> @@ -1253,7 +1253,6 @@ static int elantech_set_input_params(struct psmouse *psmouse) >> input_abs_set_res(dev, ABS_MT_POSITION_Y, info->y_res); >> } >> >> - etd->y_max = y_max; >> etd->width = width; >> >> return 0; >> diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h >> index 571e6ca11d..1ec004f72d 100644 >> --- a/drivers/input/mouse/elantech.h >> +++ b/drivers/input/mouse/elantech.h >> @@ -180,7 +180,6 @@ struct elantech_data { >> unsigned char reg_25; >> unsigned char reg_26; >> unsigned int single_finger_reports; >> - unsigned int y_max; >> unsigned int width; >> struct finger_pos mt[ETP_MAX_FINGERS]; >> unsigned char parity[256]; >> -- >> 2.38.0
Hi Eirin, On Mon, Nov 28, 2022 at 01:18, Eirin Nya <nyanpasu256@gmail.com> wrote: > Hi, > > Is there any progress on incorporating this patch into mainline Linux? Dmitry (in To: now) is a very busy maintainer. It's possible that he missed this series. If in a week you haven't heard back from him, I suggest you do a RESEND as documented in [1] Don't get discouraged, and thank you for your patience! Mattijs [1] https://www.kernel.org/doc/html/latest/process/submitting-patches.html?highlight=resend#don-t-get-discouraged-or-impatient > Every time my rolling distro updates its kernel minor/patch version, I > get a broken touchpad until I rebase and reapply my patch, then > rebuild and install the psmouse kernel module. I've had to do this so > many times I wrote a script to automate this process for new kernel > patch versions (and have to fix the script for new minor/major > versions since I didn't figure out string parsing in Bash, or if I > switched Linux distros). > > Thanks, > Eirin > > On 10/14/22 6:10 AM, Mattijs Korpershoek wrote: >> On Fri, Oct 14, 2022 at 04:15, Eirin Nya <nyanpasu256@gmail.com> wrote: >> >>> elantech_data::y_max is copied from elantech_device_info::y_max, and >>> neither is mutated after initialization. So remove the redundant >>> variable to prevent future bugs when updating y_max. >>> >>> Signed-off-by: Eirin Nya <nyanpasu256@gmail.com> >> >> Hi Eirin, >> >> Thank you for v2. I know you're new to kernel development so here is >> some more "process feedback". >> >> I've already reviewed this in v1: >> https://lore.kernel.org/all/87ilkv7ogc.fsf@mkorpershoek-xps-13-9370.home/ >> >> After getting a "Reviewed-by" reply on one of the patches, it is >> customary to add that in the commit message footer, if the patch is >> unchanged. This encourages reviewers and gives them some credit for >> their review :) >> >> This is documented at: >> https://www.kernel.org/doc/html/latest/process/submitting-patches.html#reviewer-s-statement-of-oversight >> >> To quote the doc: >>> Both Tested-by and Reviewed-by tags, once received on mailing list from >>> tester or reviewer, should be added by author to the applicable patches >>> when sending next versions. >> >> So please, if you have to send a v3 at some point, please add: >> >> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> >> >> Note that it's not needed to send a v3 *JUST* to include the trailers. >> The maintainer will pick them up if he decides to merge this. >> >>> --- >>> drivers/input/mouse/elantech.c | 17 ++++++++--------- >>> drivers/input/mouse/elantech.h | 1 - >>> 2 files changed, 8 insertions(+), 10 deletions(-) >>> >>> diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c >>> index ece97f8c6a..79e31611fc 100644 >>> --- a/drivers/input/mouse/elantech.c >>> +++ b/drivers/input/mouse/elantech.c >>> @@ -360,7 +360,7 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse) >>> input_report_abs(dev, ABS_X, >>> ((packet[1] & 0x0c) << 6) | packet[2]); >>> input_report_abs(dev, ABS_Y, >>> - etd->y_max - (((packet[1] & 0x03) << 8) | packet[3])); >>> + etd->info.y_max - (((packet[1] & 0x03) << 8) | packet[3])); >>> } >>> >>> input_report_key(dev, BTN_TOOL_FINGER, fingers == 1); >>> @@ -435,7 +435,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) >>> * byte 4: . . . . y11 y10 y9 y8 >>> * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 >>> */ >>> - y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >>> + y1 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >>> >>> pres = (packet[1] & 0xf0) | ((packet[4] & 0xf0) >> 4); >>> width = ((packet[0] & 0x30) >> 2) | ((packet[3] & 0x30) >> 4); >>> @@ -450,7 +450,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) >>> */ >>> x1 = (((packet[0] & 0x10) << 4) | packet[1]) << 2; >>> /* byte 2: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 */ >>> - y1 = etd->y_max - >>> + y1 = etd->info.y_max - >>> ((((packet[0] & 0x20) << 3) | packet[2]) << 2); >>> /* >>> * byte 3: . . by8 bx8 . . . . >>> @@ -458,7 +458,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) >>> */ >>> x2 = (((packet[3] & 0x10) << 4) | packet[4]) << 2; >>> /* byte 5: by7 by8 by5 by4 by3 by2 by1 by0 */ >>> - y2 = etd->y_max - >>> + y2 = etd->info.y_max - >>> ((((packet[3] & 0x20) << 3) | packet[5]) << 2); >>> >>> /* Unknown so just report sensible values */ >>> @@ -579,7 +579,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, >>> * byte 4: . . . . y11 y10 y9 y8 >>> * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 >>> */ >>> - y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >>> + y1 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >>> break; >>> >>> case 2: >>> @@ -593,7 +593,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, >>> * byte 4: . . . . ay11 ay10 ay9 ay8 >>> * byte 5: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 >>> */ >>> - etd->mt[0].y = etd->y_max - >>> + etd->mt[0].y = etd->info.y_max - >>> (((packet[4] & 0x0f) << 8) | packet[5]); >>> /* >>> * wait for next packet >>> @@ -605,7 +605,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, >>> x1 = etd->mt[0].x; >>> y1 = etd->mt[0].y; >>> x2 = ((packet[1] & 0x0f) << 8) | packet[2]; >>> - y2 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >>> + y2 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >>> break; >>> } >>> >>> @@ -681,7 +681,7 @@ static void process_packet_head_v4(struct psmouse *psmouse) >>> return; >>> >>> etd->mt[id].x = ((packet[1] & 0x0f) << 8) | packet[2]; >>> - etd->mt[id].y = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >>> + etd->mt[id].y = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); >>> pres = (packet[1] & 0xf0) | ((packet[4] & 0xf0) >> 4); >>> traces = (packet[0] & 0xf0) >> 4; >>> >>> @@ -1253,7 +1253,6 @@ static int elantech_set_input_params(struct psmouse *psmouse) >>> input_abs_set_res(dev, ABS_MT_POSITION_Y, info->y_res); >>> } >>> >>> - etd->y_max = y_max; >>> etd->width = width; >>> >>> return 0; >>> diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h >>> index 571e6ca11d..1ec004f72d 100644 >>> --- a/drivers/input/mouse/elantech.h >>> +++ b/drivers/input/mouse/elantech.h >>> @@ -180,7 +180,6 @@ struct elantech_data { >>> unsigned char reg_25; >>> unsigned char reg_26; >>> unsigned int single_finger_reports; >>> - unsigned int y_max; >>> unsigned int width; >>> struct finger_pos mt[ETP_MAX_FINGERS]; >>> unsigned char parity[256]; >>> -- >>> 2.38.0
On Mon, Nov 28, 2022 at 02:29:03PM +0100, Mattijs Korpershoek wrote: > Hi Eirin, > > On Mon, Nov 28, 2022 at 01:18, Eirin Nya <nyanpasu256@gmail.com> wrote: > > > Hi, > > > > Is there any progress on incorporating this patch into mainline Linux? > > Dmitry (in To: now) is a very busy maintainer. It's possible that he > missed this series. > > If in a week you haven't heard back from him, I suggest you do a RESEND > as documented in [1] > > Don't get discouraged, and thank you for your patience! Hi, yeah, sorry, I have most patches either sent to me or I am CCed on them so I rarely look into the mailing list itself. Please just copy me next time you send out a patch. Thanks.
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c index ece97f8c6a..79e31611fc 100644 --- a/drivers/input/mouse/elantech.c +++ b/drivers/input/mouse/elantech.c @@ -360,7 +360,7 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse) input_report_abs(dev, ABS_X, ((packet[1] & 0x0c) << 6) | packet[2]); input_report_abs(dev, ABS_Y, - etd->y_max - (((packet[1] & 0x03) << 8) | packet[3])); + etd->info.y_max - (((packet[1] & 0x03) << 8) | packet[3])); } input_report_key(dev, BTN_TOOL_FINGER, fingers == 1); @@ -435,7 +435,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) * byte 4: . . . . y11 y10 y9 y8 * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 */ - y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); + y1 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); pres = (packet[1] & 0xf0) | ((packet[4] & 0xf0) >> 4); width = ((packet[0] & 0x30) >> 2) | ((packet[3] & 0x30) >> 4); @@ -450,7 +450,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) */ x1 = (((packet[0] & 0x10) << 4) | packet[1]) << 2; /* byte 2: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 */ - y1 = etd->y_max - + y1 = etd->info.y_max - ((((packet[0] & 0x20) << 3) | packet[2]) << 2); /* * byte 3: . . by8 bx8 . . . . @@ -458,7 +458,7 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse) */ x2 = (((packet[3] & 0x10) << 4) | packet[4]) << 2; /* byte 5: by7 by8 by5 by4 by3 by2 by1 by0 */ - y2 = etd->y_max - + y2 = etd->info.y_max - ((((packet[3] & 0x20) << 3) | packet[5]) << 2); /* Unknown so just report sensible values */ @@ -579,7 +579,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, * byte 4: . . . . y11 y10 y9 y8 * byte 5: y7 y6 y5 y4 y3 y2 y1 y0 */ - y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); + y1 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); break; case 2: @@ -593,7 +593,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, * byte 4: . . . . ay11 ay10 ay9 ay8 * byte 5: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 */ - etd->mt[0].y = etd->y_max - + etd->mt[0].y = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); /* * wait for next packet @@ -605,7 +605,7 @@ static void elantech_report_absolute_v3(struct psmouse *psmouse, x1 = etd->mt[0].x; y1 = etd->mt[0].y; x2 = ((packet[1] & 0x0f) << 8) | packet[2]; - y2 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); + y2 = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); break; } @@ -681,7 +681,7 @@ static void process_packet_head_v4(struct psmouse *psmouse) return; etd->mt[id].x = ((packet[1] & 0x0f) << 8) | packet[2]; - etd->mt[id].y = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); + etd->mt[id].y = etd->info.y_max - (((packet[4] & 0x0f) << 8) | packet[5]); pres = (packet[1] & 0xf0) | ((packet[4] & 0xf0) >> 4); traces = (packet[0] & 0xf0) >> 4; @@ -1253,7 +1253,6 @@ static int elantech_set_input_params(struct psmouse *psmouse) input_abs_set_res(dev, ABS_MT_POSITION_Y, info->y_res); } - etd->y_max = y_max; etd->width = width; return 0; diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h index 571e6ca11d..1ec004f72d 100644 --- a/drivers/input/mouse/elantech.h +++ b/drivers/input/mouse/elantech.h @@ -180,7 +180,6 @@ struct elantech_data { unsigned char reg_25; unsigned char reg_26; unsigned int single_finger_reports; - unsigned int y_max; unsigned int width; struct finger_pos mt[ETP_MAX_FINGERS]; unsigned char parity[256];