Linux Input/HID development
 help / color / mirror / Atom feed
From: David Heidelberg <david@ixit.cz>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Krzysztof Kozlowski <krzk@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
	"Jason A. Donenfeld" <Jason@zx2c4.com>,
	Matthias Schiffer <matthias.schiffer@ew.tq-group.com>,
	Vincent Huang <vincent.huang@tw.synaptics.com>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	linux-input@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	phone-devel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] arm64: dts: qcom: sdm845-oneplus: Update compatible to include model
Date: Thu, 25 Jun 2026 20:39:15 +0200	[thread overview]
Message-ID: <32affded-bae2-46c4-a702-2054fbfe46a8@ixit.cz> (raw)
In-Reply-To: <aj1OhZQjO5nNYlAo@google.com>

On 25/06/2026 18:57, Dmitry Torokhov wrote:
> Hi Krzysztof,
> 
> On Thu, Jun 25, 2026 at 10:23:54AM +0200, Krzysztof Kozlowski wrote:
>> On 25/06/2026 06:53, Dmitry Torokhov wrote:
>>> On Wed, Jun 24, 2026 at 04:37:25PM +0200, David Heidelberg wrote:
>>>> On 24/06/2026 06:28, Dmitry Torokhov wrote:
>>>>> Hi David,
>>>>>
>>>>> On Sun, Jun 21, 2026 at 07:11:45PM +0200, David Heidelberg wrote:
>>>>>> On 28/05/2026 00:13, David Heidelberg wrote:
>>>>>>> On 27/05/2026 23:56, Dmitry Torokhov wrote:
>>>>>>>> Hi David,
>>>>>>>>
>>>>>>>> On Sat, May 23, 2026 at 11:45:35AM +0200, David Heidelberg via B4 Relay wrote:
>>>>>>>>> From: David Heidelberg <david@ixit.cz>
>>>>>>>>>
>>>>>>>>> We know the driver is reporting s3706b, introduce the compatible so we
>>>>>>>>> can more easily introduce quirks for weird touchscreen replacements in
>>>>>>>>> followup series.
>>>>>>>>>
>>>>>>>>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>>>>>>> Signed-off-by: David Heidelberg <david@ixit.cz>
>>>>>>>>> ---
>>>>>>>>>     arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 2 +-
>>>>>>>>>     1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>>>>
>>>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>>>>>>>>> b/arch/ arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>>>>>>>>> index 6b7378cf4d493..148164d456a5a 100644
>>>>>>>>> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>>>>>>>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>>>>>>>>> @@ -475,17 +475,17 @@ bq27441_fg: bq27441-battery@55 {
>>>>>>>>>         };
>>>>>>>>>     };
>>>>>>>>>     &i2c12 {
>>>>>>>>>         status = "okay";
>>>>>>>>>         clock-frequency = <400000>;
>>>>>>>>>         synaptics-rmi4-i2c@20 {
>>>>>>>>> -        compatible = "syna,rmi4-i2c";
>>>>>>>>> +        compatible = "syna,rmi4-s3706b", "syna,rmi4-i2c";
>>>>>>>>
>>>>>>>> So I believe we established that this device (s3706b) does not in fact
>>>>>>>> implement rmi4 protocol properly. Why do we have "syna,rmi4-i2c" as a
>>>>>>>> fallback? Shouldn't it be just "syna,rmi4-s3706b"?
>>>>>>>
>>>>>>> The vendor supplies s3706b which does implement the RMI4 properly.
>>>>>>>
>>>>>>> The 3rd party replacement impersonating original parts may not implement
>>>>>>> it properly, but I don't address this issue in this initial submission.
>>>>>>>
>>>>>>> With this compatible we know which original part is used by the vendor
>>>>>>> and installed in the phones, so later we can deduct specific sequences
>>>>>>> for the replacement aftermarket parts to keep phone touchscreen working
>>>>>>> same as they do on Android without affecting other devices.
>>>>>>
>>>>>> Hello Dmitry.
>>>>>>
>>>>>> May I ask what is currently preventing this series from moving forward?
>>>>>>
>>>>>> The first version was posted in 2023 [1]. I picked it up again in 2025 [2]
>>>>>> and am now on the 9th iteration (this patchset). At this point, the series
>>>>>> has been under discussion for well over a year, with relatively little
>>>>>> feedback and increasingly long gaps between review rounds.
>>>>>>
>>>>>> The current approach is based on the guidance I have received so far,
>>>>>> including suggestions from the device-tree maintainers. When concerns were
>>>>>> raised, I tried to address them and rework the series accordingly.
>>>>>>
>>>>>> What I am struggling with is understanding what specific issue still needs
>>>>>> to be resolved before these patches can be accepted. If there are remaining
>>>>>> requirements, objections to the approach, or technical concerns that I have
>>>>>> not addressed, I would appreciate having them stated explicitly so I can
>>>>>> work on them.
>>>>>>
>>>>>> I also split out the straightforward, self-contained changes in the hope
>>>>>> that at least those could progress independently while I continued working
>>>>>> on any follow-up requirements. However, even those patches do not appear to
>>>>>> be moving forward.
>>>>>>
>>>>>> Could you please clarify what outcome you would like to see from this
>>>>>> series, and what concrete changes would be required to get it accepted?
>>>>>
>>>>> I am still confused about how you want to differentiate between the full
>>>>> RMI4 support vs the OnePlus flavor. The "syna,rmi4-s3706b", as you
>>>>> mentioned, implements RMI4 protocol properly, so we do not need to
>>>>> actually have it documented neither in binding nor in DTS.
>>>>
>>>> --- part 1 ---
>>>>
>>>> This series addresses identification within device-tree. It's normal
>>>> recommended practice.
>>>>
>>>> If we know, the device ships specific, but **compliant** variant, we just
>>>> put it as compatible = "more-specific", "less-specific"; in this case
>>>> "syna,rmi4-s3706b", "syna,rmi4-i2c"
>>>>
>>>> This approach is used everywhere. This has nothing to do with after-market parts.
>>>
>>> We do this in many cases, sometimes when a part has different timings or
>>> maybe additional functionality compared to the base model.
>>
>> Generic expectation is to have always dedicated front compatible for
>> every device. rmi4-i2c is not really specific enough, more like a
>> family, thus a specific device compatible is essential by the DT rules.
> 
> Essential in what way? What will break if such compatible is not there?
> We have lived without it for many years and will continue live happily
> without it for years to come.

Hi Dmitry, Krzystof,

Device tree should describe the hardware, rmi4-i2c isn't the exact model of 
hardware used, the real hardware is Synaptics S3706B. Device-tree should, where 
possible, describe the actual hardware used.

> 
> We keep having this conversation each time there is self-describing
> protocol that does not require knowledge of a specific part number:
> i2c-hid, rmi4, spi-hid coming over soon.

While the protocol doesn't require this knowledge, where is the issue provide 
the model, at least in the places where we know it?

Does it making things worse to describe hardware in more detail?

> 
> We might need a device-specific compatible if we need to implement
> particular power on sequence/adjust timings, and that's when it starts
> making sense to introduce one.
> 
>>
>> It does not matter if that specific compatible is ever used.
>>
>>>
>>> How does this new compatible for controller that fully implements RMI4
>>> protocol help here?
>>
>> It does not matter. This is a different device, thus it needs
>> front-specific compatible.
> 
> Different from what?
> 
> $ git grep syna,rmi4 -- arch/ | wc -l
> 43
> 
> Do you have plans to list each and every chip currently covered by
> syna,rmi4* ?

Not really. I would definitely do the chips we know the model and encourage 
others to identify chips their devices use, so developers know which hardware is 
present. Each vendor should know which touchscreen model they ship with and 
provide this information.

Reading the model from the dmesg at runtime is the least optimal way in my eyes.

> 
>>
>> Also, the commit msg actually did mention how this helps: allowing
>> further quirks (I did not verify that in practice, but explanation is
>> plausible).
> 
> Well, the devil is in the details. And that is what I am trying to
> understand.

This detail is irrelevant for this patchset. This patchset makes what 
device-tree should do - describe the hardware independently on any future 
patches which may use it in the future.

> 
>>
>>>
>>>>
>>>> --- part 2 (irrelevant for this series) ---
>>>>
>>>>>
>>>>> The issue you have with after-market parts that are not compliant and we
>>>>> need to figure out how to deal with them. Inside the driver I
>>>>
>>>> As was suggested by device-tree folks, this is the first step, there isn't
>>>> better one available. If there is, please suggest one, and I'll apply it.
>>>
>>> Was it clearly communicated to DT folks that the compatible you are
>>> adding is fully compatible with the base "syna,rmi4-i2c" but other ones
>>> will not be compatible?
>>
>> That was not communicated but also did not have to. You can install in
>> your board whatever you wish, e.g. replacing foo device with bar being
>> something completely different and incompatible. Does not matter really
>> if this is after-market or a person just swapped things.
>>
>> DT does not solve that problem simply, because we describe static
>> hardware configuration.
> 
> But the core issue that David is trying to solve is the fact that these
> headsets do not work well with aftermarket parts with the upstream
> kernels. It is not a theoretical problem for him, it is something that
> he's been trying to solve for a while.

As you can see, I'm trying solve different problem here, and that's describing 
the hardware model.

> 
> However from my POV I need to make sure the changes to the driver do not
> affect or limit well-behaved devices implementing RMI4 protocol
> properly.

I think we can agree that defining model of touchscreen used in the device-tree 
won't affect any hardware you care about.

I'll be more than happy discuss the after-market parts in relevant patchset 
submission. These two patches are not introducing anything directly related to 
after-market parts, more like opposite defining the hardware which is shipped 
with the phones from manufacturer.

David

[...]


  reply	other threads:[~2026-06-25 18:39 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-23  9:45 [PATCH v2 0/2] Introduce OnePlus 6/6T touchscreen compatible David Heidelberg via B4 Relay
2026-05-23  9:45 ` [PATCH v2 1/2] dt-bindings: input: syna,rmi4: Document syna,rmi4-s3706b David Heidelberg via B4 Relay
2026-06-26  5:37   ` Dmitry Torokhov
2026-05-23  9:45 ` [PATCH v2 2/2] arm64: dts: qcom: sdm845-oneplus: Update compatible to include model David Heidelberg via B4 Relay
2026-05-27 21:56   ` Dmitry Torokhov
2026-05-27 22:13     ` David Heidelberg
2026-06-21 17:11       ` David Heidelberg
2026-06-24  4:28         ` Dmitry Torokhov
2026-06-24 14:37           ` David Heidelberg
2026-06-25  4:53             ` Dmitry Torokhov
2026-06-25  8:23               ` Krzysztof Kozlowski
2026-06-25  8:25                 ` Krzysztof Kozlowski
2026-06-25 16:57                 ` Dmitry Torokhov
2026-06-25 18:39                   ` David Heidelberg [this message]
2026-06-26  5:38                     ` Dmitry Torokhov
2026-06-26 14:11                       ` David Heidelberg
2026-06-26  7:42                   ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=32affded-bae2-46c4-a702-2054fbfe46a8@ixit.cz \
    --to=david@ixit.cz \
    --cc=Jason@zx2c4.com \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=konrad.dybcio@oss.qualcomm.com \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthias.schiffer@ew.tq-group.com \
    --cc=phone-devel@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=vincent.huang@tw.synaptics.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox