All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Luca Weiss" <luca.weiss@fairphone.com>
To: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
	<linux-arm-msm@vger.kernel.org>
Cc: <~postmarketos/upstreaming@lists.sr.ht>,
	<phone-devel@vger.kernel.org>, "Andy Gross" <agross@kernel.org>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Georgi Djakov" <djakov@kernel.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Odelu Kukatla" <okukatla@codeaurora.org>,
	<linux-pm@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 2/5] dt-bindings: interconnect: Add Qualcomm SM6350 NoC support
Date: Fri, 20 May 2022 14:04:28 +0200	[thread overview]
Message-ID: <CK4KPEWM9165.2LR9ZUG2GGK6Q@otso> (raw)
In-Reply-To: <7b451dfb-8353-4a4e-1834-a01feaa267d2@linaro.org>

Hi Krzysztof,

Thanks for the review!

On Fri May 20, 2022 at 12:31 PM CEST, Krzysztof Kozlowski wrote:
> On 20/05/2022 09:03, Luca Weiss wrote:
> > Add bindings for Qualcomm SM6350 Network-On-Chip interconnect devices.
> > 
> > As SM6350 has two pairs of NoCs sharing the same reg, allow this in the
> > binding documentation, as was done for qcm2290.
> > 
> > Because the main qcom,rpmh.yaml file is getting too complicated for our
> > use cases, create a new qcom,rpmh-common.yaml and a separate
> > qcom,sm6350-rpmh.yaml that defines our new bindings.
> > 
> > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> > ---
> > Changes since v1:
> > * Split sm6350 into separate yaml with new rpmh-common.yaml
> > 
> >  .../interconnect/qcom,rpmh-common.yaml        |  41 +++++
> >  .../interconnect/qcom,sm6350-rpmh.yaml        |  82 ++++++++++
> >  .../dt-bindings/interconnect/qcom,sm6350.h    | 148 ++++++++++++++++++
> >  3 files changed, 271 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,rpmh-common.yaml
> >  create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml
> >  create mode 100644 include/dt-bindings/interconnect/qcom,sm6350.h
> > 
> > diff --git a/Documentation/devicetree/bindings/interconnect/qcom,rpmh-common.yaml b/Documentation/devicetree/bindings/interconnect/qcom,rpmh-common.yaml
> > new file mode 100644
> > index 000000000000..6121eea3e87d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/interconnect/qcom,rpmh-common.yaml
> > @@ -0,0 +1,41 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/interconnect/qcom,rpmh-common.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Qualcomm RPMh Network-On-Chip Interconnect
> > +
> > +maintainers:
> > +  - Georgi Djakov <georgi.djakov@linaro.org>
> > +  - Odelu Kukatla <okukatla@codeaurora.org>
>
> Is this valid email address?

Will put Georgi and Bjorn as maintainers, as per your other email.

>
> > +
> > +description: |
> > +   RPMh interconnect providers support system bandwidth requirements through
> > +   RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
> > +   able to communicate with the BCM through the Resource State Coordinator (RSC)
> > +   associated with each execution environment. Provider nodes must point to at
> > +   least one RPMh device child node pertaining to their RSC and each provider
> > +   can map to multiple RPMh resources.
> > +
> > +properties:
> > +  '#interconnect-cells':
> > +    enum: [ 1, 2 ]
>
> Why this is an enum?

As a start, just adding that the definitions are copied from
qcom,rpmh.yaml so it's not my invention :) Of course that doesn't mean
that it should be improved where possible!

Either value is supported by the driver (and used upstream). But perhaps
it can use a description to define what the 'parameters' mean.

The second (optional) parameters "is to support different bandwidth
configurations that are toggled by RPMh, depending on the power state of
the CPU."[0]

A commit message for sc7180 calls it the "tag information" and "The
consumers can specify the path tag as an additional argument to the
endpoints."[1]

Not sure how to properly describe the first property, I guess the
interconnect endpoint? Maybe Georgi can help here.


[0] https://lore.kernel.org/linux-arm-msm/b079a211-d387-7958-bbe2-c41cac00d269@kernel.org/
[1] https://git.kernel.org/torvalds/c/e23b122

>
> > +
> > +  qcom,bcm-voters:
> > +    $ref: /schemas/types.yaml#/definitions/phandle-array
> > +    items:
>
> Please implement my previous comments.

Sorry, I looked over the comment in v1.

As far as I can tell in current code only 1 item is used.

If the second parameter of_bcm_voter_get would be used as non-NULL then
qcom,bcm-voter-names gets looked up and the N-th value in qcom,bcm-voters
used. But currently qcom,bcm-voter-names is not actively used so only
one gets used.

Do you have a recommendation what to put here? A synthetic limit like
32 just to have a number there?

>
> > +      maxItems: 1
> > +    description: |
>
> No need for |

ack

>
> > +      List of phandles to qcom,bcm-voter nodes that are required by
> > +      this interconnect to send RPMh commands.
> > +
> > +  qcom,bcm-voter-names:
>
> What names do you expect here?

Currently unused in mainline but newer downstream kernels[2] use "hlos"
as first parameter, and e.g. "disp" as second one that goes to a
qcom,bcm-voter that's a child of disp_rsc. Not sure exactly what that
does.

[2] https://github.com/atomsand/android_kernel_qcom_devicetree/blob/a6d50810116e8314d64eb63b8862c207b974e0c7/qcom/waipio.dtsi#L1701-L1793

>
> > +    description: |
>
> Ditto.

ack

>
> > +      Names for each of the qcom,bcm-voters specified.
> > +
> > +required:
> > +  - '#interconnect-cells'
> > +  - qcom,bcm-voters
> > +
> > +additionalProperties: true
> > diff --git a/Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml b/Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml
> > new file mode 100644
> > index 000000000000..89fe17c31b8f
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml
> > @@ -0,0 +1,82 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/interconnect/qcom,sm6350-rpmh.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Qualcomm SM6350 RPMh Network-On-Chip Interconnect
> > +
> > +maintainers:
> > +  - Luca Weiss <luca.weiss@fairphone.com>
> > +
> > +description: |
> > +  Qualcomm RPMh-based interconnect provider on SM6350.
> > +
> > +allOf:
> > +  - $ref: qcom,rpmh-common.yaml#
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - qcom,sm6350-aggre1-noc
> > +      - qcom,sm6350-aggre2-noc
> > +      - qcom,sm6350-config-noc
> > +      - qcom,sm6350-dc-noc
> > +      - qcom,sm6350-gem-noc
> > +      - qcom,sm6350-mmss-noc
> > +      - qcom,sm6350-npu-noc
> > +      - qcom,sm6350-system-noc
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  '#interconnect-cells': true
>
> Since you defined it as enum in rpmh-common, you really expect here
> different values?

Doesn't ": true" here just mean we want the value from the allOf: -
$ref?
But we could in theory make interconnect-cells only accept <2> for
sm6350.

>
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +unevaluatedProperties: false
> > +
> > +patternProperties:
>
> This goes after "properties".

So above required & unevaluatedProperties? Will update.

Regards
Luca

>
> > +  '^interconnect-[a-z0-9\-]+$':
> > +    type: object
> > +    description:
> > +      The interconnect providers do not have a separate QoS register space,
> > +      but share parent's space.
> > +    $ref: qcom,rpmh-common.yaml#
> > +
> > +    properties:
> > +      compatible:
> > +        enum:
> > +          - qcom,sm6350-clk-virt
> > +          - qcom,sm6350-compute-noc
> > +
> > +      '#interconnect-cells': true
>
> Same problem.
>
> > +
> > +    required:
> > +      - compatible
> > +
> > +    unevaluatedProperties: false
> > +
>
>
> Best regards,
> Krzysztof


  reply	other threads:[~2022-05-20 12:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-20  7:03 [PATCH v2 0/5] Add interconnect support for SM6350 Luca Weiss
2022-05-20  7:03 ` [PATCH v2 1/5] interconnect: qcom: icc-rpmh: Support child NoC device probe Luca Weiss
2022-05-20  7:03 ` [PATCH v2 2/5] dt-bindings: interconnect: Add Qualcomm SM6350 NoC support Luca Weiss
2022-05-20 10:31   ` Krzysztof Kozlowski
2022-05-20 12:04     ` Luca Weiss [this message]
2022-05-20 14:24       ` Krzysztof Kozlowski
2022-05-23 14:32         ` Luca Weiss
2022-05-24 17:30           ` Krzysztof Kozlowski
2022-05-20  7:03 ` [PATCH v2 3/5] dt-bindings: interconnect: qcom: Reuse new rpmh-common bindings Luca Weiss
2022-05-20 10:33   ` Krzysztof Kozlowski
2022-05-20 11:42     ` Luca Weiss
2022-05-20  7:03 ` [PATCH v2 4/5] interconnect: qcom: Add SM6350 driver support Luca Weiss
2022-05-20  7:03 ` [PATCH v2 5/5] arm64: dts: qcom: sm6350: Add interconnect support Luca Weiss

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=CK4KPEWM9165.2LR9ZUG2GGK6Q@otso \
    --to=luca.weiss@fairphone.com \
    --cc=agross@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=djakov@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=okukatla@codeaurora.org \
    --cc=phone-devel@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=~postmarketos/upstreaming@lists.sr.ht \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.