From: Konrad Dybcio <konradybcio@gmail.com>
To: Krzysztof Kozlowski <krzk@kernel.org>,
Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>,
konrad.dybcio@linaro.org, andersson@kernel.org,
andi.shyti@kernel.org, linux-arm-msm@vger.kernel.org,
dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-i2c@vger.kernel.org, conor+dt@kernel.org,
agross@kernel.org, devicetree@vger.kernel.org, vkoul@kernel.org,
linux@treblig.org, dan.carpenter@linaro.org, Frank.Li@nxp.com,
konradybcio@kernel.org, bryan.odonoghue@linaro.org,
krzk+dt@kernel.org, robh@kernel.org
Cc: quic_vdadhani@quicinc.com
Subject: Re: [PATCH v5 1/4] dt-bindindgs: i2c: qcom,i2c-geni: Document shared flag
Date: Tue, 10 Dec 2024 13:38:28 +0100 [thread overview]
Message-ID: <422e6a1e-e76a-4ebc-a0a5-64c47ea57823@gmail.com> (raw)
In-Reply-To: <8b33f935-04a9-48df-8ea1-f6b98efecb9d@kernel.org>
On 12/10/24 13:05, Krzysztof Kozlowski wrote:
> On 10/12/2024 12:53, Krzysztof Kozlowski wrote:
>>>>> I'm not sure a single property name+description can fit all possible
>>>>> cases here. The hardware being "shared" can mean a number of different
>>>>
>>>> Existing property does not explain anything more, either. To recap -
>>>> this block is SE and property is named "se-shared", so basically it is
>>>> equal to just "shared". "shared" is indeed quite vague, so I was
>>>> expecting some wider work here.
>>>>
>>>>
>>>>> things, with some blocks having hardware provisions for that, while
>>>>> others may have totally none and rely on external mechanisms (e.g.
>>>>> a shared memory buffer) to indicate whether an external entity
>>>>> manages power to them.
>>>>
>>>> We have properties for that too. Qualcomm SoCs need once per year for
>>>> such shared properties. BAM has two or three. IPA has two. There are
>>>> probably even more blocks which I don't remember now.
>>>
>>> So, the problem is "driver must not toggle GPIO states", because
>>> "the bus controller must not be muxed away from the endpoint".
>>> You can come up with a number of similar problems by swapping out
>>> the quoted text.
>>>
>>> We can either describe what the driver must do (A), or what the
>>> reason for it is (B).
>>>
>>>
>>> If we go with A, we could have a property like:
>>>
>>> &i2c1 {
>>> externally-handled-resources = <(EHR_PINCTRL_STATE | EHR_CLOCK_RATE)>
>>> };
>>>
>>> which would be a generic list of things that the OS would have to
>>> tiptoe around, fitting Linux's framework split quite well
>>>
>>>
>>>
>>> or if we go with B, we could add a property like:
>>>
>>> &i2c1 {
>>> qcom,shared-controller;
>>> };
>>>
>>> which would hide the implementation details into the driver
>>>
>>> I could see both approaches having their place, but in this specific
>>> instance I think A would be more fitting, as the problem is quite
>>> simple.
>>
>>
>> The second is fine with me, maybe missing information about "whom" do
>> you share it with. Or maybe we get to the point that all this is
>> specific to SoC, thus implied by compatible and we do not need
>> downstream approach (another discussion in USB pushed by Qcom: I want
>> one compatible and 1000 properties).
>>
>> I really wished Qualcomm start reworking their bindings before they are
>> being sent upstream to match standard DT guidelines, not downstream
>> approach. Somehow these hundreds reviews we give could result in new
>> patches doing things better, not just repeating the same issues.
>
> This is BTW v5, with all the same concerns from v1 and still no answers
> in commit msg about these concerns. Nothing explained in commit msg
> which hardware needs it or why the same SoC have it once shared, once
> not (exclusive). Basically there is nothing here corresponding to any
> real product, so since five versions all this for me is just copy-paste
> from downstream approach.
So since this is a software contract and not a hardware
feature, this is not bound to any specific SoC or "firmware",
but rather to what runs on other cores (e.g. DSPs, MCUs spread
across the SoC or in a different software world, like TZ).
Specifying the specific intended use would be helpful though,
indeed.
Let's see if we can somehow make this saner.
Mukesh, do we have any spare registers that we could use to
indicate that a given SE is shared? Preferably within the
SE's register space itself. The bootloader or another entity
(DSP or what have you) would then set that bit before Linux
runs and we could skip the bindings story altogether.
It would need to be reserved on all SoCs though (future and
past), to make sure the contract is always held up, but I
think finding a persistent bit that has never been used
shouldn't be impossible.
Konrad
next prev parent reply other threads:[~2024-12-10 12:38 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-29 14:43 [PATCH v5 0/4] Enable shared SE support over I2C Mukesh Kumar Savaliya
2024-11-29 14:43 ` [PATCH v5 1/4] dt-bindindgs: i2c: qcom,i2c-geni: Document shared flag Mukesh Kumar Savaliya
2024-11-29 15:14 ` Krzysztof Kozlowski
2024-12-02 4:00 ` Mukesh Kumar Savaliya
2024-12-02 7:19 ` Krzysztof Kozlowski
2024-12-02 10:38 ` Mukesh Kumar Savaliya
2024-12-02 11:04 ` Krzysztof Kozlowski
2024-12-02 11:13 ` Krzysztof Kozlowski
2024-12-09 15:07 ` Mukesh Kumar Savaliya
2024-12-02 12:55 ` Mukesh Kumar Savaliya
2024-12-02 14:04 ` Konrad Dybcio
2024-12-09 15:01 ` Mukesh Kumar Savaliya
2024-12-10 7:28 ` Krzysztof Kozlowski
2024-12-10 9:09 ` Konrad Dybcio
2024-12-10 11:53 ` Krzysztof Kozlowski
2024-12-10 12:05 ` Krzysztof Kozlowski
2024-12-10 12:38 ` Konrad Dybcio [this message]
2024-12-10 15:17 ` Mukesh Kumar Savaliya
2024-12-10 15:24 ` Konrad Dybcio
2024-12-10 15:56 ` Krzysztof Kozlowski
2024-12-10 17:52 ` Bjorn Andersson
2024-11-30 4:45 ` Bjorn Andersson
2024-12-02 10:38 ` Mukesh Kumar Savaliya
2024-12-03 15:43 ` Bjorn Andersson
2024-11-29 14:43 ` [PATCH v5 2/4] dmaengine: gpi: Add Lock and Unlock TRE support to access I2C exclusively Mukesh Kumar Savaliya
2024-12-02 6:47 ` Vinod Koul
2024-12-02 10:43 ` Mukesh Kumar Savaliya
2024-12-04 12:21 ` Vinod Koul
2024-12-18 12:34 ` Mukesh Kumar Savaliya
2024-12-24 9:58 ` Vinod Koul
2024-12-26 12:22 ` Mukesh Kumar Savaliya
2025-01-14 9:18 ` Mukesh Kumar Savaliya
2024-11-29 14:43 ` [PATCH v5 3/4] soc: qcom: geni-se: Do not keep GPIOs to sleep state for shared SE usecase Mukesh Kumar Savaliya
2024-11-29 14:43 ` [PATCH v5 4/4] i2c: i2c-qcom-geni: Enable i2c controller sharing between two subsystems Mukesh Kumar Savaliya
2024-12-13 13:05 ` Konrad Dybcio
2024-12-15 8:59 ` Mukesh Kumar Savaliya
2024-12-16 12:10 ` Konrad Dybcio
2024-12-16 12:47 ` Mukesh Kumar Savaliya
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=422e6a1e-e76a-4ebc-a0a5-64c47ea57823@gmail.com \
--to=konradybcio@gmail.com \
--cc=Frank.Li@nxp.com \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=andi.shyti@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=dan.carpenter@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=konrad.dybcio@linaro.org \
--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-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@treblig.org \
--cc=quic_msavaliy@quicinc.com \
--cc=quic_vdadhani@quicinc.com \
--cc=robh@kernel.org \
--cc=vkoul@kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).