From patchwork Wed Mar 8 13:13:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eirin Nya X-Patchwork-Id: 66233 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp331833wrd; Wed, 8 Mar 2023 05:31:13 -0800 (PST) X-Google-Smtp-Source: AK7set8UAdUdeO+v/OoPS6PBejmKkuX3TQOHtCADfHNx4lF7tjscG3kVH9SeZdvdAmYJ0mtqkwcQ X-Received: by 2002:a17:906:4f94:b0:8f7:3488:fd78 with SMTP id o20-20020a1709064f9400b008f73488fd78mr18364595eju.0.1678282273573; Wed, 08 Mar 2023 05:31:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678282273; cv=none; d=google.com; s=arc-20160816; b=kpON3yXOmnlcPTQC0tsGKxh3/lQl+yRkwlwtHTZV5Mjlx3+cRnewMezzdD3DhMab0T EUqX6pXbKceGGH3+yT6gRV9l1XHzPbWkLx5VGwtNT9HUJkJ8nxMTRgyAPq1epr+/DbrL TQrscoVlhkGeWmhAm7s8oHiQDNe7nc0bqc6exBf4/jKGvcU1WFePUA18ZvtyD5x4kT39 4R1fCvIlZO+3RApEGDeVpoXrBhsDU8KWyHxc74AGr4fxAl0eVjlU3D02bavV+ItdAW/u lHHJYYSH6GLBLoxBWbg5Vp1tabjiBQ/OAQh/sRuZaKa0ZTCZiYNrIk3OkYT+Syq49cFK wc4w== 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=sXaLa5HmcYzrfq+b8cSAVhY/ivp9VzoFLihZVltD2T8=; b=KoapM4C/+tY2/OUOQEKvn3Z/Fc34niDFC5pGXN1xKDNdzlSulPZJLeUwzAI/AO3/vx F4vtRtICsVLiefPL6g/JQJyDKxQrE0LNbMFW4CS+0ydBfQAvuC6jaYw0Uun3gPO6xl+M T8x79WR+XVfhHmH/5BykJfvw2EqHVpb1oU7wCsjW7zctcvjzGouvgkL+Isa1/ZN14D+2 koyVgEzsOJppr9EM2Wmrtkw0R2zb4m9UJ7AYseiH9IJrzC0sRFM7y0SO14DGpRgJ4lAi viO35cjRAejTRhen52r8sMXgZU7wJFrvx7k8GwwSlmic2ioh6y3Q4V9lBp31KMtqd76i 8edQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=citMaKX9; 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 cd23-20020a170906b35700b008c0f93e4de2si1834510ejb.440.2023.03.08.05.30.49; Wed, 08 Mar 2023 05:31:13 -0800 (PST) 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=citMaKX9; 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 S229613AbjCHNQ6 (ORCPT + 99 others); Wed, 8 Mar 2023 08:16:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231252AbjCHNQe (ORCPT ); Wed, 8 Mar 2023 08:16:34 -0500 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9D0383151; Wed, 8 Mar 2023 05:13:22 -0800 (PST) Received: by mail-pl1-x62a.google.com with SMTP id n6so17586867plf.5; Wed, 08 Mar 2023 05:13:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678281200; 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=sXaLa5HmcYzrfq+b8cSAVhY/ivp9VzoFLihZVltD2T8=; b=citMaKX9rUUB6bkNu7btENi4OYo8kXuQNRAA345Nf0VuGbpj2KOI5Fz0Pw/nZ/wT27 lre1F6nS53i4Yo23CPmlXWSO9rcrmMESDKgAhMAyw3DzXS0rHmpy3MU7pGopUogTOI5X cEKejl9Soa+Rl+YvwAEkY8Gv9Imlfkj7eVdSdXde7ybsRWL9mQGUwiE2XWz0Cf3wIwCd uw4l/aFjbj1VSzFtjKtTVyaV5iLbsxAuWPfKyoqi6sxCz4prvzi5bewpfSYtqbHvmjvO 3M3hy0lJwr/21gAT6d4vXNllhAdlqMW9ljHgKySF5p6iUGzp4EOrgCA1noHV3PjD9PmH eexQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678281200; 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=sXaLa5HmcYzrfq+b8cSAVhY/ivp9VzoFLihZVltD2T8=; b=2D/6reNujd9kjzq4uZ58buoiEFjVpWp41qgvk9JgWHYpqKMJo1fH8X4drTcYDMbdS1 lBqXX4eAkLEGQlh1fhZi7S+xgwX5iILBViiBr1409QbBn3CHDHc1zeAtQY+L8UwAwATn ZiMuDadOjoZMXnuFOGi1zMKdMbXf6Ia/sc6gxB22Xjq3CBQ+aEEKBKaaeAL5p9iJDK8v Jyxk/vfQvyM8QtVxenB5chO2Dl+7Ymj03L7N2SX89289xxjPx9HtDwSo+0MkCCqu8C9a lU/Spc+29oeDOFgnO2TKGY4kNIaHeKslAWp0XkgbTPdEq/9Oetw984GWE2hWSNqam2wF snOg== X-Gm-Message-State: AO0yUKWndfcOef05BrZIq6vvzFke2Nfa5AmHhYKrkYNb+RDu7hofuo23 CHDEc2R6PQlhPgxB1diW2po= X-Received: by 2002:a05:6a20:1585:b0:cc:a93:2b81 with SMTP id h5-20020a056a20158500b000cc0a932b81mr19438040pzj.41.1678281200158; Wed, 08 Mar 2023 05:13:20 -0800 (PST) Received: from localhost.localdomain (c-71-202-83-242.hsd1.ca.comcast.net. [71.202.83.242]) by smtp.gmail.com with ESMTPSA id i15-20020aa78b4f000000b0061ddff8c53dsm931038pfd.151.2023.03.08.05.13.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 05:13:19 -0800 (PST) From: Eirin Nya To: dmitry.torokhov@gmail.com Cc: mkorpershoek@baylibre.com, phoenix@emc.com.tw, josh.chen@emc.com.tw, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Eirin Nya Subject: [PATCH V2 RESEND 1/3] Input: elantech - Remove redundant field elantech_data::y_max Date: Wed, 8 Mar 2023 05:13:05 -0800 Message-Id: <20230308131307.13832-2-nyanpasu256@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308131307.13832-1-nyanpasu256@gmail.com> References: <20230308131307.13832-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?1759806513381205422?= X-GMAIL-MSGID: =?utf-8?q?1759806513381205422?= 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 ece97f8c6a3e..79e31611fc6e 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 571e6ca11d33..1ec004f72d13 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 Wed Mar 8 13:13:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eirin Nya X-Patchwork-Id: 66237 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp332453wrd; Wed, 8 Mar 2023 05:32:16 -0800 (PST) X-Google-Smtp-Source: AK7set9yHlkqaorh72p21HWnITCX9mIJJ24CjOfP7DZ52spJIF6aOkr0XBzU4T3t2TEP3KxEgJSY X-Received: by 2002:a05:6402:3cc:b0:4c1:aa3e:8a6d with SMTP id t12-20020a05640203cc00b004c1aa3e8a6dmr16448984edw.23.1678282336384; Wed, 08 Mar 2023 05:32:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678282336; cv=none; d=google.com; s=arc-20160816; b=Jf1eVsRYlJDDyNziJuah90JMlTJg6GUX3GVCxZGDQ4hV8voaS3SIyoiXfPstDAnpC6 +AXYFqiAxyGmtPC07vS5Sg3ojmaZ1p2gcUvoeP/PxbSYyrvqYfh7nHc2JY4KmBO9nHj5 cCxgFjAfQ6PheC+h750D5IW2PO/fWYyLxFSbRPNxO4z+hWZXGeQV/smKNWPcbCN5xDiM wtVTKD3BpnJ9KK1J/1hcrtWinLjXAK4cZqYDxw8oKUdCYY3L83ppqI01eCJqDTy3Ohfk IJSKt5zLDE3Agi0jEGBrNh6fOsyCfup/FuEMPdgmkQLyJLGwO+Pq5ny8f+9rbmwyXvkm gWaw== 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=Pfh0KN1ri+OTygQJZXMIKBpXa0FBqGE1v3ae9U34K4M=; b=PN/cUbfXSud4kByWFdY4Ux6Z4m5Xk/LfCOTDfwxLweGp6f1Ei5NFBYFoHDkfsOIut1 Yw1ll+ZGzAOSm3iZKtODj54xGsxYiobTIU4XFphppstbH8CEAaRxYR7Rw8Z0Lw1vHc4h ieqr9A6meYqusTMl+moJF35qohDzHlFdG+G4O/VTAgq13TyMI3tikXe8MvULkkvCwH+s bykDsk/upcuzlN0GdvQOZc91CuMHvs58xZ2hz0JDN3oj1kLBT1EvLk0R+ie8B+NOYAUS fWIWnHICDfhkY1SWg8X0ZpXvdv4kOBAILXLp5I+hXB2rpnFurDVItVhJIOK0vFvRvAyE GbJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=QClyTe2I; 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 e21-20020a170906505500b008e161646775si2707848ejk.180.2023.03.08.05.31.52; Wed, 08 Mar 2023 05:32:16 -0800 (PST) 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=QClyTe2I; 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 S229692AbjCHNRC (ORCPT + 99 others); Wed, 8 Mar 2023 08:17:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42088 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231259AbjCHNQe (ORCPT ); Wed, 8 Mar 2023 08:16:34 -0500 Received: from mail-pj1-x102e.google.com (mail-pj1-x102e.google.com [IPv6:2607:f8b0:4864:20::102e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D2DCA244; Wed, 8 Mar 2023 05:13:24 -0800 (PST) Received: by mail-pj1-x102e.google.com with SMTP id m8-20020a17090a4d8800b002377bced051so2284149pjh.0; Wed, 08 Mar 2023 05:13:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678281201; 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=Pfh0KN1ri+OTygQJZXMIKBpXa0FBqGE1v3ae9U34K4M=; b=QClyTe2I/hwZ33JYUtvcFvlYFCxqH6gGxddkb6Mw9ZaqpgFxBKcorhq8UJPzxRRUCi uTx2PAKgI7bZrF/lTreDTxx7yWj9FiMv/lcDOtBO4kTVWb/ldkZzPi74PN0iCcPzjL0u 6IfzT1yMB1KmotWpnR50Ed/zp68QUvjkRw8+Z8BwLKfNv1LrRvjObQb5B0Mbo4meFOK8 pcECmBt83D7aT32ermDtuFvqSky7Wq8yWGobn3Y0xiIaiPUEjNFzDHO0el2pOBUSYoSH Mv2TTNWc/3XsfxfV4UkiSb0e0ybIrlSQyVaF3kOWv1Hfuo0AKLaOHX+E5g3t/m8T/NGm OzkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678281201; 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=Pfh0KN1ri+OTygQJZXMIKBpXa0FBqGE1v3ae9U34K4M=; b=lllP3brH++MGDGz/q2ahQweQz/5mCOcwi1g6kST1mZ4h2PdyAahnpbZyZAFrjiKKQd EN1n7m4jc4vAU8KcIcM1lgwj5vmFs65QbgeUN6nPy06Y1mMRJMew0xNSYXHILqdOUQ+N /Mgf7Bm/WzaMxwTFcEz/LInZ3BBKPhHGrEzh1L2/MjixAmzKSNlzVvVIvjy3keWNMh1c 7ty2OXncaS/OEzDzHt54JxIKzURWI5oPtLyfuHgyPBrXSK+Hy6YQjxuiW7+Ou60JIpb1 kkj2On0cYZZFMdDPbwe7cEi/IrvWuXWOWA9LkYs+Aw1B4bX1A9Qgonda0tTE3fYH6e6U mGtw== X-Gm-Message-State: AO0yUKVtxHp8cBSRsIKZfE60t7bqyul7u5gRRMvRqOaOn8NFtJndETue S17cFb8vxBn45QC/Z0lLf7BfCIKroqY/TQ== X-Received: by 2002:a05:6a20:8e05:b0:cb:c2a8:2c48 with SMTP id y5-20020a056a208e0500b000cbc2a82c48mr22265955pzj.17.1678281201203; Wed, 08 Mar 2023 05:13:21 -0800 (PST) Received: from localhost.localdomain (c-71-202-83-242.hsd1.ca.comcast.net. [71.202.83.242]) by smtp.gmail.com with ESMTPSA id i15-20020aa78b4f000000b0061ddff8c53dsm931038pfd.151.2023.03.08.05.13.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 05:13:20 -0800 (PST) From: Eirin Nya To: dmitry.torokhov@gmail.com Cc: mkorpershoek@baylibre.com, phoenix@emc.com.tw, josh.chen@emc.com.tw, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Eirin Nya Subject: [PATCH V2 RESEND 2/3] Input: elantech - Remove redundant field elantech_data::width Date: Wed, 8 Mar 2023 05:13:06 -0800 Message-Id: <20230308131307.13832-3-nyanpasu256@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308131307.13832-1-nyanpasu256@gmail.com> References: <20230308131307.13832-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?1759806579243869711?= X-GMAIL-MSGID: =?utf-8?q?1759806579243869711?= 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 79e31611fc6e..263779c0313b 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 1ec004f72d13..fb093134ead7 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 Wed Mar 8 13:13:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eirin Nya X-Patchwork-Id: 66229 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp331362wrd; Wed, 8 Mar 2023 05:30:28 -0800 (PST) X-Google-Smtp-Source: AK7set/TI/ArO+zH/t1C1DFSSwFtYnnqpWve9A4/JD0o7XQIFoTDMTo+sZ08FeWSq1QQqaaNnLMJ X-Received: by 2002:aa7:c7d9:0:b0:4ea:b218:f7d3 with SMTP id o25-20020aa7c7d9000000b004eab218f7d3mr7287470eds.10.1678282228635; Wed, 08 Mar 2023 05:30:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678282228; cv=none; d=google.com; s=arc-20160816; b=rHikHVrXiLvU7vJ5lKIxFLkCXDcZIQzWL+ZbfSxqdcgexQ8AM0aU4sxu81mDz3dzat YRYdDSmAVC86DB1gsd0jc2t0ZFOFxJIJKnh+9NUDnpvdQ8k+sfcW2OzxYts5slnQ74mc 9Qef9VK1845ngOLwJ3KCZnDn47k9ngTcvj0wVaLXza5GWbQIO64ym2B4T/JlkigBodgI aWP66wMMfOwBr6mZEnRW1Sk4GuDXXeCeaHJ78woWTfoqOQqZJu9Wi2JbAOCvPUUlbIwA bVpA8OgBKCxvgq/AKqvEND2aZLkmIc4gjWSot0mKjObS2XKc1a9VWT8rCQQmlGkum6o3 37WQ== 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=i9DydYMTRcu+Y1TIha62te3KuLPkmgUGtmnQcwLhqok=; b=mqirr3/IKVBjZlNOreyY/YlDDFCo2yq5tQsZKM3jOjzy682jD9v42ryyYaEATFyqSS bnjl8b2xSF0pjiSqHSMLS8oeApbn+/Cl0clYKiiF2tAcphveMsDkHwJRU/Q5NXciIZxi PHE/QRnP2r5rD6RAoMB2rvWQd5tof4oGTSDemudDN4YJlWghG3UxECRDMA7JyUQ55BiD 1Zz2WWT8UdFE9V+CaaSzuMQtx+mtqax5vgwqsgLple9LrMx5WAl3YeU3iVvd5SVMZlDy ajyCFXiX+gy4dqZ4EksO7Mw0RlNryANFE2N4Rwj48I2ByJXhYswiJfVJ2+EP9L7ldkov bNHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Tn5RpYYP; 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 go19-20020a1709070d9300b008cef4d78043si12437072ejc.756.2023.03.08.05.30.04; Wed, 08 Mar 2023 05:30:28 -0800 (PST) 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=Tn5RpYYP; 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 S230071AbjCHNRH (ORCPT + 99 others); Wed, 8 Mar 2023 08:17:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41540 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230280AbjCHNQf (ORCPT ); Wed, 8 Mar 2023 08:16:35 -0500 Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E2F91E5FA; Wed, 8 Mar 2023 05:13:25 -0800 (PST) Received: by mail-pj1-x1036.google.com with SMTP id 6-20020a17090a190600b00237c5b6ecd7so2227019pjg.4; Wed, 08 Mar 2023 05:13:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678281202; 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=i9DydYMTRcu+Y1TIha62te3KuLPkmgUGtmnQcwLhqok=; b=Tn5RpYYPDAxm4Z7gCKwmkYz586o87KxZws4SUGzdG3r5dY6sqt48NpTvOaTMOe7HCg QXGOU96te0rOAKK9l45lxVeOyFFObDCpkkcyrAJl8GIu68LPXeZ/6E/ntIvVXRG0Er3u lBRCpkG8M/qN5TIyFQ6UFTOTFRh0BXLNrFPwcMC/RIvJ4hTH5jBxv4ZxiqmeWrioBrLO GnO1LEEh5uTAxANXib6aKPZu9hz3g3503wKnkWQx5kw97+ajapIc4AoYKtkJxjAblAYL HzWwgBvV8UIdgAd7GCiAIKnosqTAQ8u+MjInJNbDOncMrtS+Pc38M4pXmGGTRXQFe8y9 LvKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678281202; 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=i9DydYMTRcu+Y1TIha62te3KuLPkmgUGtmnQcwLhqok=; b=bdZ2WfajaY9B72j2QYbKye6Ihy8w1L78Hmf5jhHZGzeJ1ezE0wCoAjyIh4JLLMMbkd ZDnhCPIaEGLL63knZCbo4PBy+0lNLDt2th0ZI3zrsgQoOOqBvBRPBz124E8FJGRfX1II oO4o9vtN7PsN7XLi9aCEIi/FlQ3Lg+Exqq3sSKM6PIRMc8V9GueDU7MZv+zPcFx+bY3B UYbgs/ou4fDpAr3HwVZqJ8vAloBu49um0QcgyV1BBnX4/3jmpRf5J1ueocRTFB1/gy5g 6wIajNeU1+a6hXna8nBfZ+T4UrMjPUCjkDSrh0YY5tUI57cLZhLkoOTJ3H4KUjdp4q5e L/Kg== X-Gm-Message-State: AO0yUKXEp1isvLMkwKqLy1hui6oQry6FAFwNRu6UaQ5oD8IHjNjDy7EO frJtel7qfyiTLER1846OFaNcinNt4w8Xqg== X-Received: by 2002:a05:6a20:ba9e:b0:cc:9f59:4562 with SMTP id fb30-20020a056a20ba9e00b000cc9f594562mr15918278pzb.53.1678281202174; Wed, 08 Mar 2023 05:13:22 -0800 (PST) Received: from localhost.localdomain (c-71-202-83-242.hsd1.ca.comcast.net. [71.202.83.242]) by smtp.gmail.com with ESMTPSA id i15-20020aa78b4f000000b0061ddff8c53dsm931038pfd.151.2023.03.08.05.13.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 05:13:21 -0800 (PST) From: Eirin Nya To: dmitry.torokhov@gmail.com Cc: mkorpershoek@baylibre.com, phoenix@emc.com.tw, josh.chen@emc.com.tw, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Eirin Nya Subject: [PATCH V2 RESEND 3/3] Input: elantech - Fix incorrectly halved touchpad range on ELAN v3 touchpads Date: Wed, 8 Mar 2023 05:13:07 -0800 Message-Id: <20230308131307.13832-4-nyanpasu256@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308131307.13832-1-nyanpasu256@gmail.com> References: <20230308131307.13832-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?1759805744620715201?= X-GMAIL-MSGID: =?utf-8?q?1759806466031932972?= On Linux 6.1.15, 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 --- 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 263779c0313b..a2176f0fd36c 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: