Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp953394ybm; Tue, 21 May 2019 06:28:59 -0700 (PDT) X-Google-Smtp-Source: APXvYqxtSIBM7G1WRw8KJZWw+ZmVu+slTIAtkRgGkHarhYrO+A35x3fkmx2wpijFoAUjh0r91HZV X-Received: by 2002:a17:902:7202:: with SMTP id ba2mr28599200plb.177.1558445339759; Tue, 21 May 2019 06:28:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558445339; cv=none; d=google.com; s=arc-20160816; b=GuU2iK/WFaJMdKVEuNPSiJ9ITiXwJbB3OQmwwvYMg4/9ft1fX1epXQafgf8k3XywAN hX4uq7OM6PitAc6NHH48kuvFpticfYyYpU0AG9BIgj9RkHJViOJN2X9TR9dW6ZjC0F8F j6YKl+vLXtJ92/7gNWiHUn2zm+fSWlzHzIk6UUvaGMkiSIBzOm8//YXlDhbLFKhwKxtU rEe8uH28adS/10CJlEC7ooeAP2MzXjsgkhx32WB8Syx3L43ctfccAIBOjpoMBaAmcshs Z/X4uOP2O8v6fFeVBEMnfVj1OFUjAdEohf7yQllob0Bxuq4U6flTWWjOXcY/nqoMujtk PDrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=1+kH9upVOTYDg3Mq3ggvXWt9rZwQ/URkTXOsfxdwW4Q=; b=XE2W7OMLdqQ0LldJNKjmQ9hZ9fpt6xLAYvp1VbyQ5+ZUqzX6kb7j37pSRXrTd8B3Kh EjiFb+8KcCF8y24YLkPZ39tf28OQyk1/Y6vEXD4XMcOZSUCC4iN7FCNYwIdSUXu+RsoB /5ZyyaHbSe+0ARWStQXNPGCtn0pbRZGP2zPDLVuYh3ibXw9SymKO+kCcGJ7U9QVhL8sh WrXRJJ4AaO6kx6ij6IbyA5J1kCu3quzM9Mb0w2qBrs9l5DVkASxduBKqfeUnJSDp+T6G 5p7GJ1+rljawQQdqTEP+Lg4wv/KPVjwMXwIozq/Ax0IkHicNqJwx8C+eKhGb3yrkhgL3 2NyA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s14si24373004pfc.146.2019.05.21.06.28.44; Tue, 21 May 2019 06:28:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728255AbfEUN1b (ORCPT + 99 others); Tue, 21 May 2019 09:27:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35176 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726750AbfEUN1a (ORCPT ); Tue, 21 May 2019 09:27:30 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EDEF43082E58; Tue, 21 May 2019 13:27:24 +0000 (UTC) Received: from plouf.redhat.com (ovpn-116-49.ams2.redhat.com [10.36.116.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4D33E60F8D; Tue, 21 May 2019 13:27:20 +0000 (UTC) From: Benjamin Tissoires To: Dmitry Torokhov , KT Liao , Rob Herring , Aaron Ma , Hans de Goede Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Benjamin Tissoires Subject: [PATCH v2 00/10] Fix Elan I2C touchpads in latest generation from Lenovo Date: Tue, 21 May 2019 15:27:02 +0200 Message-Id: <20190521132712.2818-1-benjamin.tissoires@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Tue, 21 May 2019 13:27:30 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This is the v2 from https://lkml.org/lkml/2018/10/12/633 So I initially thought it would be easy to integrate the suggested changes in the v1, but it turns our that the changes to have the touchscreen-width and height parameters were quite hard to do. I finally postponed the issue by blacklisting the 2 laptops we knew were not working and tried to devote more time to understand both drivers more. But it s the time where Lenovo is preparing the new models, and guess what, they suffer from the same symptoms. So I took a few time to work on this and finally got my head around the width and height problem. Once I got it, it was simple clear, but this also means we can not really rely on a device tree property for that. So in the elan* drivers, the "traces" are simply how many antennas there are on each axis. Which means that if a trace of 4 is reported in the events, it means it is simply seen by 4 antennas. So the computation of the width/height is the following: we take how many antennas there are, we subtract one to have the number of holes between the antennas, and we divide the number of unit we have in the axis by the value we just computed. This gives a rough 4mm on the P52, in both directions. And once you get that, you can just realize that the unit of the width and height are just the same than the X and Y coordinates, so we can apply the same resolution. So, in the end, that means that elan_i2c needs the information, or it will not be able to convert the number of crossed antennas into a size, but this is something specific to this touchpad. So here come, 7 months later the v2 on the subject. Cheers, Benjamin Benjamin Tissoires (10): Input: elantech - query the min/max information beforehand too Input: elantech - add helper function elantech_is_buttonpad() Input: elantech - detect middle button based on firmware version dt-bindings: add more optional properties for elan_i2c touchpads Input: elan_i2c - do not query the info if they are provided Input: elantech/SMBus - export all capabilities from the PS/2 node Input: elan_i2c - handle physical middle button Input: elan_i2c - export true width/height Input: elan_i2c - correct the width/size base value Input: elantech: remove P52 from SMBus blacklist .../devicetree/bindings/input/elan_i2c.txt | 11 + drivers/input/mouse/elan_i2c_core.c | 85 +++-- drivers/input/mouse/elantech.c | 318 ++++++++++-------- drivers/input/mouse/elantech.h | 8 + 4 files changed, 251 insertions(+), 171 deletions(-) -- 2.21.0