Re: [PATCH] dt-bindings: arm-smmu: disallow clocks when not used

From: Marijn Suijten
Date: Thu Dec 22 2022 - 08:33:29 EST


On 2022-12-22 11:36:16, Krzysztof Kozlowski wrote:
> On 22/12/2022 11:16, Marijn Suijten wrote:
> > Is this missing a cc to linux-arm-msm?
>
> No, it is not (or maybe but then fix MAINTAINERS). The policy is to use
> get_maintainers.pl to CC people.

Yes, that is the question: is it in MANTAINERS and if not, why not?

> > On 2022-12-22 10:23:55, Krzysztof Kozlowski wrote:
> >> Disallow clocks for variants other than:
> >> 1. SMMUs with platform-specific compatibles which list explicit clocks
> >> and clock-names,
> >> 2. SMMUs using only generic compatibles, e.g. arm,mmu-500, which have a
> >> variable clocks on different implementations.
> >>
> >> This requires such variants with platform-specific compatible, to
> >> explicitly list the clocks or omit them, making the binding more
> >> constraint.
> >>
> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> >
> > Reviewed-by: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx>
> >
> > But...
> >
> >> ---
> >>
> >> Cc: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx>
> >> Cc: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> >> Cc: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> >> ---
> >> .../devicetree/bindings/iommu/arm,smmu.yaml | 28 +++++++++++++++++++
> >> 1 file changed, 28 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
> >> index 895ec8418465..0d88395e43ad 100644
> >> --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
> >> +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
> >> @@ -367,6 +367,34 @@ allOf:
> >> - description: interface clock required to access smmu's registers
> >> through the TCU's programming interface.
> >>
> >> + # Disallow clocks for all other platforms with specific compatibles
> >> + - if:
> >> + properties:
> >> + compatible:
> >> + contains:
> >> + enum:
> >> + - cavium,smmu-v2
> >> + - marvell,ap806-smmu-500
> >> + - nvidia,smmu-500
> >> + - qcom,qcm2290-smmu-500
> >> + - qcom,qdu1000-smmu-500
> >> + - qcom,sc7180-smmu-500
> >
> > Hmm, sc7280 has two SMMUs. The one for Adreno has clocks and a PD, the
>
> sc7280 is not here, so what is the mistake you see?

sc7280 has two IOMMU nodes. One with clocks (should not be in this
list), the other doesn't have clocks (should be in this list).

How do you want to address that?

> > one for APPS has neither. Same story on sm8[12]50. Aren't those going
> > to trip up the other `if` that requires clocks in both scenarios?
>
> They are not here either, so what is the error?

Ditto.

> > Note that the Adreno SMMUs have (or will get when we/Konrad submit
> > support for it) the "qcom,adreno-smmu" compatible to distinguish them.

- Marijn