[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d9bac31d-ad73-4d40-9e6b-7397dd5f5b23@ixit.cz>
Date: Sat, 3 May 2025 16:02:57 +0200
From: David Heidelberg <david@...t.cz>
To: Kaustabh Chakraborty <kauschluss@...root.org>,
Dmitry Torokhov <dmitry.torokhov@...il.com>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
<conor+dt@...nel.org>, "Jason A. Donenfeld" <Jason@...c4.com>,
Matthias Schiffer <matthias.schiffer@...tq-group.com>,
Vincent Huang <vincent.huang@...synaptics.com>
Cc: linux-input@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, Caleb Connolly <caleb.connolly@...aro.org>,
phone-devel@...r.kernel.org, ~postmarketos/upstreaming@...ts.sr.ht,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Subject: Re: [PATCH v5 0/7] Input: synaptics-rmi4 - add quirks for third party
touchscreen controllers
Kind ping on the series.
When the series is considered solid, it will improve Linux usability on
lower-quality touchscreen replacements (including those from other
vendors and models) outside of our Snapdragon 845 downstream fork.
Thank you
David
On 10/04/2025 16:28, David Heidelberg via B4 Relay wrote:
> With the growing popularity of running upstream Linux on mobile devices,
> we're beginning to run into more and more edgecases. The OnePlus 6 is a
> fairly well supported 2018 era smartphone, selling over a million units
> in it's first 22 days. With this level of popularity, it's almost
> inevitable that we get third party replacement displays, and as a
> result, replacement touchscreen controllers.
>
> The OnePlus 6 shipped with an extremely usecase specific touchscreen
> driver, it implemented only the bare minimum parts of the highly generic
> rmi4 protocol, instead hardcoding most of the register addresses.
>
> As a result, the third party touchscreen controllers that are often
> found in replacement screens, implement only the registers that the
> downstream driver reads from. They additionally have other restrictions
> such as heavy penalties on unaligned reads.
>
> This series attempts to implement the necessary workaround to support
> some of these chips with the rmi4 driver. Although it's worth noting
> that at the time of writing there are other unofficial controllers in
> the wild that don't work even with these patches.
>
> We have been shipping these patches in postmarketOS for the last several
> years, and they are known to not cause any regressions on the OnePlus
> 6/6T (with the official Synaptics controller), however I don't own any
> other rmi4 hardware to further validate this.
>
> ---
> Changes in v5:
> - Removed -i2c suffix from rmi4-s3706b-i2c (Krzysztof).
> - Link to v4: https://lore.kernel.org/r/20250402-synaptics-rmi4-v4-0-1bb95959e564@ixit.cz
>
> Changes in v4:
> - Replaced patch "dt-bindings: input: syna,rmi4: document syna,pdt-fallback-desc"
> with patch documenting specific touchscreen model used in OnePlus 6 and 6T.
> - Fixed zero electrode return code (Dmitry).
> - Switched the duplicate detection algo to bitmap (Dmitry).
> - Optimized rmi_device_platform_data struct to avoid unnecessary
> padding.
> - Changed fallback_size from int to unsigned int.
> - Changed SoB from nickname and old address (methanal <baclofen@...a.io>) to
> Kaustabh Chakraborty <kauschluss@...root.org>.
> Verified ownership through the sdm845 chatroom on Matrix.
> - Link to v3: https://lore.kernel.org/r/20250308-synaptics-rmi4-v3-0-215d3e7289a2@ixit.cz
>
> Changes in v3:
> - reworded dt-bindings property description
> - fixed the rmi_driver_of_probe definition for non device-tree builds.
> - fixed some indentation issues reported by checkpatch
> - change rmi_pdt_entry_is_valid() variable to unsigned
> - Link to v2: https://lore.kernel.org/all/20230929-caleb-rmi4-quirks-v2-0-b227ac498d88@linaro.org
>
> Changes in v2:
> - Improve dt-bindings patch (thanks Rob)
> - Add missing cast in patch 5 to fix the pointer arithmetic
> - Link to v1: https://lore.kernel.org/r/20230929-caleb-rmi4-quirks-v1-0-cc3c703f022d@linaro.org
>
> ---
> Caleb Connolly (1):
> Input: synaptics-rmi4 - handle duplicate/unknown PDT entries
>
> David Heidelberg (1):
> dt-bindings: input: syna,rmi4: Document syna,rmi4-s3706b
>
> Kaustabh Chakraborty (5):
> Input: synaptics-rmi4 - f12: use hardcoded values for aftermarket touch ICs
> Input: synaptics-rmi4 - f55: handle zero electrode count
> Input: synaptics-rmi4 - don't do unaligned reads in IRQ context
> Input: synaptics-rmi4 - read product ID on aftermarket touch ICs
> Input: synaptics-rmi4 - support fallback values for PDT descriptor bytes
>
> .../devicetree/bindings/input/syna,rmi4.yaml | 11 +-
> drivers/input/rmi4/rmi_driver.c | 124 +++++++++++++++++----
> drivers/input/rmi4/rmi_driver.h | 10 ++
> drivers/input/rmi4/rmi_f01.c | 14 +++
> drivers/input/rmi4/rmi_f12.c | 117 ++++++++++++++-----
> drivers/input/rmi4/rmi_f55.c | 5 +
> include/linux/rmi.h | 3 +
> 7 files changed, 234 insertions(+), 50 deletions(-)
> ---
> base-commit: f0a16f5363325cc8d9382471cdc7b654c53254c9
> change-id: 20250308-synaptics-rmi4-c832b2f73ceb
>
> Best regards,
--
David Heidelberg
Powered by blists - more mailing lists