From patchwork Fri Oct 14 11:15:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eirin Nya X-Patchwork-Id: 2659 Return-Path: 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 + 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 ); 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 To: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Eirin Nya 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 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: 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?= 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 Reviewed-by: Mattijs Korpershoek --- 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]; From patchwork Fri Oct 14 11:15:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eirin Nya X-Patchwork-Id: 2655 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp132614wrs; Fri, 14 Oct 2022 04:35:46 -0700 (PDT) X-Google-Smtp-Source: AMsMyM534wY+w9KqRrIWsfpxu9oFiA66w98I3V9eKGDfKMkm7uL9Rjf1aptly8OJD+M/5jciXNX2 X-Received: by 2002:a17:907:86a9:b0:78d:f741:7fa0 with SMTP id qa41-20020a17090786a900b0078df7417fa0mr3224334ejc.734.1665747346450; Fri, 14 Oct 2022 04:35:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665747346; cv=none; d=google.com; s=arc-20160816; b=Z9ZY6a3vAqUYwYyDBDdyQRDg62NrTcxoG9xP4tRGubZQgkjFp1D9GRMoCsMengzcM9 2CVpxqh+En9GWshedslfEF+PJTEn+q/6Y4YHss/E70P9uCaKW+Zv9bbVSosY4PjWVeW+ veG0RhnPd8aAe8TPeOePdSkhB9jx20XRyXSONFjHnsqITGVMQxbpJhlG0GuXyIfXbnU/ wwvM8+IFCjRtSrVefW7r1bOjKPwrR7g8HaHQWBIphD+QYLA2hqL01K75Ia6OaRKxcXm7 KlosP5phZZQYqJz/WNXrYRRWv4KDk1eLzJj5qOUyEFfFiiUUVCSk0OK8dIVTMyXI3hdt 8+Kg== 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=klUZYq5ksLhv5eYymOLtmPnXDmVH6nH7RiedGb7KOzQ=; b=fRe+NcHWlQw+QcvhF/ieC9poRTolyHtIqXg6MJAuNxtLO5PM+/pyRHGyKAhNZRPOOf 47z3r/efWfo29wj9DQEUdgXg2awvN2KdPNs5cthA0BTpfJOZFcQsLFCDTasiJnBzMCiI bFsu9kt3W0e5/xs5+EDyiEj9iKhqINgiiViElK4+pjRAHZXAofYkQ0ufHLZtrNSXP+sB +3c8+qbhAdpneNxwVPu5mlJjjJWjBep15Zyr2xA3tvcet/7gqLJmEbM2EZMLzMOjrvBY YmvfZ0xb9C3cO/1GLzFqk88kMxeoMa++NQmDteKr4g2IX+3jgGWGbsCmJJtbNb9vOdtA w92w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Wf2TNy4U; 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 x10-20020a170906710a00b007820f00167fsi1808033ejj.260.2022.10.14.04.35.12; Fri, 14 Oct 2022 04:35:46 -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=Wf2TNy4U; 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 S229816AbiJNLQb (ORCPT + 99 others); Fri, 14 Oct 2022 07:16:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229826AbiJNLQ1 (ORCPT ); Fri, 14 Oct 2022 07:16:27 -0400 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9991108DCD; Fri, 14 Oct 2022 04:16:24 -0700 (PDT) Received: by mail-pj1-x1035.google.com with SMTP id t12-20020a17090a3b4c00b0020b04251529so4485236pjf.5; Fri, 14 Oct 2022 04:16:24 -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=klUZYq5ksLhv5eYymOLtmPnXDmVH6nH7RiedGb7KOzQ=; b=Wf2TNy4U53GCBGVWKC77/xG0zteFRO7JD4TKgfuOfgFwMO0zVJulGC/kTMLN698A8e k8XR6nf90r4xo02Ic/C2OjtTVdvS9NYENarAXnJN1e7QtFP0agYGpl9wdaUoHRCWj9XX JtSY4g3KPqwlI1KtH7j8wm3Bs7f3ubJRUdmD+P2YU8NCK2nk8aQxLfam8yoSqyaYoNS7 4uB6dR2RLoWUstZkGc2Z04bgJjvH0nAh6d0oZNhP5jGmiF9SvlkSkulFXydjRQPBEZn1 IM656BHVsC0da0LU5ZVkn8XeUvxfOuvJ0VKGArtBxPe02nLMthfyo7wNJs6O26C6QryG Bp6A== 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=klUZYq5ksLhv5eYymOLtmPnXDmVH6nH7RiedGb7KOzQ=; b=MGgHeJYxPO7AoschsJtPEkZ2IlKavKwyoFhMxbvsdSURuYpytiyo3iE90Iv+k0fgd/ i0dAkymXIPzN5YMs21wGB9RqVoB/iwv0agk3J/vYqVyDnOhmqGpH4jzKiKNShL+hN6BR CvLlMaheAzUv/9g1JALgIPoAsHrp3wGLNGYUxLKm/0rMNtf+Qc4cNwK98Ga0lSU+rYD+ jCgjeP0OIEGU/LFYEA7+U6Gm5u2qm9vUcuBfbgDl9GaCx+/cXH8hpm6EhCIK57+vfPZp irokt7+p13G1MwUDdqOBnirW0Ztjk0ddkc2AoSpDYrnXJdbTCiWa839wZ0LxsUPGi/Jc BUeQ== X-Gm-Message-State: ACrzQf14lLCHGFbIMorotrCTahcdk2cG0iyNtegOb+ZYb71vBamjzkan Hgcl3XeefCVh6sLIaNG8qpFWKdcZG88AtA== X-Received: by 2002:a17:902:e212:b0:178:5c:8248 with SMTP id u18-20020a170902e21200b00178005c8248mr4719120plb.102.1665746183652; Fri, 14 Oct 2022 04:16:23 -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.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Oct 2022 04:16:23 -0700 (PDT) From: Eirin Nya To: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Eirin Nya Subject: [PATCH V2 2/3] Input: elantech - Remove redundant field elantech_data::width Date: Fri, 14 Oct 2022 04:15:32 -0700 Message-Id: <20221014111533.908-3-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 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1746662689599672035?= X-GMAIL-MSGID: =?utf-8?q?1746662689599672035?= elantech_data::width is copied from elantech_device_info::width, and neither is mutated after initialization. So remove the redundant variable to prevent future bugs. Signed-off-by: Eirin Nya Reviewed-by: Mattijs Korpershoek --- drivers/input/mouse/elantech.c | 4 +--- drivers/input/mouse/elantech.h | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c index 79e31611fc..263779c031 100644 --- a/drivers/input/mouse/elantech.c +++ b/drivers/input/mouse/elantech.c @@ -691,7 +691,7 @@ static void process_packet_head_v4(struct psmouse *psmouse) input_report_abs(dev, ABS_MT_POSITION_X, etd->mt[id].x); input_report_abs(dev, ABS_MT_POSITION_Y, etd->mt[id].y); input_report_abs(dev, ABS_MT_PRESSURE, pres); - input_report_abs(dev, ABS_MT_TOUCH_MAJOR, traces * etd->width); + input_report_abs(dev, ABS_MT_TOUCH_MAJOR, traces * etd->info.width); /* report this for backwards compatibility */ input_report_abs(dev, ABS_TOOL_WIDTH, traces); @@ -1253,8 +1253,6 @@ static int elantech_set_input_params(struct psmouse *psmouse) input_abs_set_res(dev, ABS_MT_POSITION_Y, info->y_res); } - etd->width = width; - return 0; } diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h index 1ec004f72d..fb093134ea 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 width; struct finger_pos mt[ETP_MAX_FINGERS]; unsigned char parity[256]; struct elantech_device_info info; From patchwork Fri Oct 14 11:15:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eirin Nya X-Patchwork-Id: 2658 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp134713wrs; Fri, 14 Oct 2022 04:41:06 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5gtTCpON/PLdyxjHCrgvgianjZLLSBuZE2anORyw27S9QcnzkQuCut0VhwaV0YgX8V4Vdh X-Received: by 2002:a17:906:9b83:b0:730:b3ae:343 with SMTP id dd3-20020a1709069b8300b00730b3ae0343mr3332061ejc.670.1665747666252; Fri, 14 Oct 2022 04:41:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665747666; cv=none; d=google.com; s=arc-20160816; b=VuOh58zMcxzzFikq0DDzNptK5etluphg0POWryMQiYK0eLCYX+KMJCcXiDnCX2AGa/ +yzUcJhmrkuHI4+41S8LHL5UJ5ATKKMInMDFpYGEMj1MAbBqHnfiOWN7P5wSUl5wkXl6 662UAcsTrtaxw7R7XMnz32IahU8OZ3pyy/383wv6KoccBCe/8v/P+imavBi4xt9gtblY Byw4eQ9jswHyOn8qoqQbnqczmpAvnEJTVEIpP1OhKw3LdgklSSTxadMyQ98JwZ2vCPZZ C0Qithr8Jq/i3QO5StsjR1Ld3tdpQFrOoKOF6nPMt0CUvbvHCvggCN7wIniF0akPI4MP PLsA== 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=IQ9x1DKTDjWXt2rrutxCXuZDyQghZxj5+fEV2TfvAvs=; b=BV2LjrOf4RxPfO0PNCbCJW8NxYMCiwupzCSRPW1CN+B17J+piAI6OnePIEs2jwZF79 ob8f1tberHoLDKSv9GUFQQuj1T6MLGHn7P/llRm2lRH/pdoc6QSvvC22I6tR9pXfhAfE iVUxTLv406VhlXcWhk9Pe6agW0wSvc/7ujUwahc739ydZv/jjVnQuLzqItKBFzthBTsh WeaN/q02C8l5K3O7581Bwdssq2FIfCIUtT9fNwkD/3/Sm5OrQl1DOrgvfg+QGPgyUDYN Zvl0qCZsNyNRSszFFACmCRSEsO4I8GViK+vEfccD+/iI55CN1BB6Kubo4rYvsOCUKnVM jNpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=GGR9QAAH; 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 dd6-20020a1709069b8600b00779c6c57dbfsi2644840ejc.556.2022.10.14.04.40.40; Fri, 14 Oct 2022 04:41:06 -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=GGR9QAAH; 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 S229864AbiJNLQg (ORCPT + 99 others); Fri, 14 Oct 2022 07:16:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229847AbiJNLQ1 (ORCPT ); Fri, 14 Oct 2022 07:16:27 -0400 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBFD71119E5; Fri, 14 Oct 2022 04:16:25 -0700 (PDT) Received: by mail-pj1-x1031.google.com with SMTP id d7-20020a17090a2a4700b0020d268b1f02so7626746pjg.1; Fri, 14 Oct 2022 04:16:25 -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=IQ9x1DKTDjWXt2rrutxCXuZDyQghZxj5+fEV2TfvAvs=; b=GGR9QAAHAfGR9wweKWtDevR/eOldcfQ/e3droNg75WCBIpN/C/lma0OPWhc8Hd4U9V YjnZxHcC9hcfeFfwycH8GwZRAdKsHsj+yD0uazhdKYcbsGCd+kMPULTc8spBWEAZQ3uX jvP9oHCKS3C5VWdxjNLJoppUf4j7M9WWQYzw//4O/fqseNDD81EwxfP/PgAY+O/6/C2i 7vjmV5PM9vz9VqLfe5xWXLUUCFj5T9apYLbLdcmTHSZuXY+M+xiB0JEol8+ShyZLsUxb PKOpZgyih+6xnf8kXEMaB/esQNABS/qy38N9Dx8VejPPQYP3S4DJtEO6goan4wWikLVp Dd9Q== 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=IQ9x1DKTDjWXt2rrutxCXuZDyQghZxj5+fEV2TfvAvs=; b=DL6nvpwxrOsyO+UZQFvKXjW+GDQTkgXzHz5SY5vH2fqdgUA+jeZVEPIePewlBSp1tl g5+idqpdCYFuZo4rBS+wEeOO80jTqjqnO8hl5ka43hYcCzeRLqi3kEkWd8cPf4i6XrGD e+LsgddLiawlu8aSl8CSaLd740wV+uYhaHZLh3Jq1isNbCxskRj8Mf7JU1lrSdrSrGAg gxdDsG76SNEhqoFYLhwmO5EnPt+vypXDi1KT7OhUmxjEC1RrZxAzV6+vU+4b/tonV+fp 5XZLcpmyoR+b61HcEDcqW7fWLEb+HkspE34Bl5Ke5ZItPO4i9VOk9pQNd+kz76mj0s88 nx+Q== X-Gm-Message-State: ACrzQf1YzJvJQc5EIPxEmrC0f58SPcHEJkBCO4JfTWk98K1bDaldE0aG dBX2/es442cuhPqY6mWQIhaD46Q5lVRTVw== X-Received: by 2002:a17:90b:400f:b0:20a:9965:ef08 with SMTP id ie15-20020a17090b400f00b0020a9965ef08mr5338283pjb.155.1665746185246; Fri, 14 Oct 2022 04:16:25 -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.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Oct 2022 04:16:24 -0700 (PDT) From: Eirin Nya To: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Eirin Nya Subject: [PATCH V2 3/3] Input: elantech - Fix incorrectly halved touchpad range on ELAN v3 touchpads Date: Fri, 14 Oct 2022 04:15:33 -0700 Message-Id: <20221014111533.908-4-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 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1746663024642095769?= X-GMAIL-MSGID: =?utf-8?q?1746663024642095769?= On Linux 5.19.10, on my laptop (Dell Inspiron 15R SE 7520) with an Elan v3 touchpad (dmesg says "with firmware version 0x450f02"), the reported size of my touchpad (in userspace by calling mtdev_configure() and libevdev_get_abs_maximum(), in kernel space elantech_device_info::x_max/y_max, either way 1470 by 700) is half that of the actual touch range (2940 by 1400), and the upper half of my touchpad reports negative values. As a result, with the Synaptics or libinput X11 driver set to edge scrolling mode, the entire right half of my touchpad has x-values past evdev's reported maximum size, and acts as a giant scrollbar! The problem is that elantech_setup_ps2() -> elantech_set_absolute_mode() sets up absolute mode and doubles the hardware resolution (doubling the hardware's maximum reported x/y coordinates and its response to ETP_FW_ID_QUERY), *after* elantech_query_info() fetches the touchpad coordinate system size using ETP_FW_ID_QUERY, which gets cached and reported to userspace through ioctl(fd, EVIOCGABS(ABS_X/Y), ...). So the touchpad size reported to userspace (and used to subtract vertical coordinates from) is half the maximum position of actual touches. This patch splits out a function elantech_query_range_v3() which fetches *only* ETP_FW_ID_QUERY (touchpad size), and calls it a second time if elantech_set_absolute_mode() enables double-size mode. This means the first call is redundant and wasted if a second call occurs, but this minimizes the need to restructure the driver. Link: https://lore.kernel.org/linux-input/CAL57YxZNutUVxBtvbVWKMw-V2kqeVB5kTQ5BFdJmN=mdPq8Q8Q@mail.gmail.com/ Link: https://lore.kernel.org/linux-input/20221008093437.72d0f6b0@dell-void.nyanpasu256.gmail.com.beta.tailscale.net/ Fixes: 37548659bb22 ("Input: elantech - query the min/max information beforehand too") Signed-off-by: Eirin Nya Reviewed-by: Mattijs Korpershoek --- Notes: Should we move (elantech_set_absolute_mode -> elantech_write_reg(...0x0b or 0x01)) *earlier* into elantech_query_info() before "query range information"? See discussion at https://lore.kernel.org/linux-input/20221008093437.72d0f6b0@dell-void.nyanpasu256.gmail.com.beta.tailscale.net/ drivers/input/mouse/elantech.c | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c index 263779c031..a2176f0fd3 100644 --- a/drivers/input/mouse/elantech.c +++ b/drivers/input/mouse/elantech.c @@ -1006,6 +1006,9 @@ static void elantech_set_rate_restore_reg_07(struct psmouse *psmouse, psmouse_err(psmouse, "restoring reg_07 failed\n"); } +static int elantech_query_range_v3(struct psmouse *psmouse, + struct elantech_device_info *info); + /* * Put the touchpad into absolute mode */ @@ -1047,6 +1050,14 @@ static int elantech_set_absolute_mode(struct psmouse *psmouse) if (elantech_write_reg(psmouse, 0x10, etd->reg_10)) rc = -1; + /* + * If we boost hardware resolution, we have to re-query + * info->x_max and y_max. + */ + if (etd->info.set_hw_resolution) + if (elantech_query_range_v3(psmouse, &etd->info)) + rc = -1; + break; case 4: @@ -1671,6 +1682,20 @@ static int elantech_set_properties(struct elantech_device_info *info) return 0; } +static int elantech_query_range_v3(struct psmouse *psmouse, + struct elantech_device_info *info) +{ + unsigned char param[3]; + + if (info->send_cmd(psmouse, ETP_FW_ID_QUERY, param)) + return -EINVAL; + + info->x_max = (0x0f & param[0]) << 8 | param[1]; + info->y_max = (0xf0 & param[0]) << 4 | param[2]; + + return 0; +} + static int elantech_query_info(struct psmouse *psmouse, struct elantech_device_info *info) { @@ -1826,11 +1851,8 @@ static int elantech_query_info(struct psmouse *psmouse, break; case 3: - if (info->send_cmd(psmouse, ETP_FW_ID_QUERY, param)) + if (elantech_query_range_v3(psmouse, info)) return -EINVAL; - - info->x_max = (0x0f & param[0]) << 8 | param[1]; - info->y_max = (0xf0 & param[0]) << 4 | param[2]; break; case 4: