From: Konrad Dybcio <konrad.dybcio@linaro.org>
To: Krzysztof Kozlowski <krzk@kernel.org>,
Varadarajan Narayanan <quic_varada@quicinc.com>
Cc: andersson@kernel.org, mturquette@baylibre.com, sboyd@kernel.org,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
djakov@kernel.org, dmitry.baryshkov@linaro.org,
quic_anusha@quicinc.com, linux-arm-msm@vger.kernel.org,
linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org
Subject: Re: [PATCH v7 1/5] dt-bindings: interconnect: Add Qualcomm IPQ9574 support
Date: Wed, 10 Apr 2024 13:48:53 +0200 [thread overview]
Message-ID: <f1b0d280-6986-4055-a611-2caceb15867d@linaro.org> (raw)
In-Reply-To: <70d0afa7-4990-4180-8dfa-cdf267e4c7a2@kernel.org>
On 4/10/24 13:15, Krzysztof Kozlowski wrote:
> On 10/04/2024 12:02, Varadarajan Narayanan wrote:
>>> Okay, so what happens if icc-clk way of generating them changes a bit?
>>> It can change, why not, driver implementation is not an ABI.
>>>
>>>>
>>>> 2. These auto-generated id-numbers have to be correctly
>>>> tied to the DT nodes. Else, the relevant clocks may
>>>> not get enabled.
>>>
>>> Sorry, I don't get, how auto generated ID number is tied to DT node.
>>> What DT node?
>>
>> I meant the following usage for the 'interconnects' entry of the
>> consumer peripheral's node.
>>
>> interconnects = <&gcc MASTER_ANOC_PCIE0 &gcc SLAVE_ANOC_PCIE0>,
>> ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
>> <&gcc MASTER_SNOC_PCIE0 &gcc SLAVE_SNOC_PCIE0>;
>> ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
>>
>>>> Since ICC-CLK creates two ids per clock entry (one MASTER_xxx and
>>>> one SLAVE_xxx), using those MASTER/SLAVE_xxx macros as indices in
>>>> the below array would create holes.
>>>>
>>>> static int icc_ipq9574_hws[] = {
>>>> [MASTER_ANOC_PCIE0] = GCC_ANOC_PCIE0_1LANE_M_CLK,
>>>> [MASTER_SNOC_PCIE0] = GCC_SNOC_PCIE0_1LANE_S_CLK,
>>>> [MASTER_ANOC_PCIE1] = GCC_ANOC_PCIE1_1LANE_M_CLK,
>>>> [MASTER_SNOC_PCIE1] = GCC_SNOC_PCIE1_1LANE_S_CLK,
>>>> . . .
>>>> };
>>>>
>>>> Other Qualcomm drivers don't have this issue and they can
>>>> directly use the MASTER/SLAVE_xxx macros.
>>>
>>> I understand, thanks, yet your last patch keeps adding fake IDs, means
>>> IDs which are not part of ABI.
>>>
>>>>
>>>> As the MASTER_xxx macros cannot be used, have to define a new set
>>>> of macros that can be used for indices in the above array. This
>>>> is the reason for the ICC_BINDING_NAME macros.
>>>
>>> Then maybe fix the driver, instead of adding something which is not an
>>> ABI to bindings and completely skipping the actual ABI.
>>
>> Will remove the ICC_xxx defines from the header. And in the
>> driver will change the declaration as follows. Will that be
>> acceptable?
>>
>> static int icc_ipq9574_hws[] = {
>> [MASTER_ANOC_PCIE0 / 2] = GCC_ANOC_PCIE0_1LANE_M_CLK,
>
> What is the binding in such case? What exactly do you bind between
> driver and DTS?
I think what Krzysztof is trying to say here is "the icc-clk API is tragic"
and the best solution would be to make it such that the interconnect indices
are set explicitly, instead of (master, slave), (master, slave) etc.
Does that sound good, Krzysztof?
Konrad
next prev parent reply other threads:[~2024-04-10 11:48 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-03 10:42 [PATCH v7 0/5] Add interconnect driver for IPQ9574 SoC Varadarajan Narayanan
2024-04-03 10:42 ` [PATCH v7 1/5] dt-bindings: interconnect: Add Qualcomm IPQ9574 support Varadarajan Narayanan
2024-04-03 14:59 ` Krzysztof Kozlowski
2024-04-04 8:55 ` Varadarajan Narayanan
2024-04-09 7:41 ` Varadarajan Narayanan
2024-04-09 9:45 ` Krzysztof Kozlowski
2024-04-09 11:03 ` Varadarajan Narayanan
2024-04-09 12:20 ` Krzysztof Kozlowski
2024-04-10 10:02 ` Varadarajan Narayanan
2024-04-10 11:15 ` Krzysztof Kozlowski
2024-04-10 11:48 ` Konrad Dybcio [this message]
2024-04-10 12:01 ` Krzysztof Kozlowski
2024-04-12 9:32 ` Varadarajan Narayanan
2024-04-17 10:58 ` Varadarajan Narayanan
2024-04-03 10:42 ` [PATCH v7 2/5] interconnect: icc-clk: Add devm_icc_clk_register Varadarajan Narayanan
2024-04-03 11:04 ` Dmitry Baryshkov
2024-04-03 10:42 ` [PATCH v7 3/5] clk: qcom: common: Add interconnect clocks support Varadarajan Narayanan
2024-04-03 11:06 ` Dmitry Baryshkov
2024-04-03 10:42 ` [PATCH v7 4/5] clk: qcom: ipq9574: Use icc-clk for enabling NoC related clocks Varadarajan Narayanan
2024-04-03 10:42 ` [PATCH v7 5/5] arm64: dts: qcom: ipq9574: Add icc provider ability to gcc Varadarajan Narayanan
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=f1b0d280-6986-4055-a611-2caceb15867d@linaro.org \
--to=konrad.dybcio@linaro.org \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=djakov@kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=quic_anusha@quicinc.com \
--cc=quic_varada@quicinc.com \
--cc=robh@kernel.org \
--cc=sboyd@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