Message ID | 1588219187-19295-1-git-send-email-smasetty@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] dt-bindings: arm-smmu: Add sc7180 compatible string and mem_iface clock | expand |
On Thu, Apr 30, 2020 at 09:29:47AM +0530, Sharat Masetty wrote: > This patch adds a new compatible string for sc7180 and also an > additional clock listing needed to power the TBUs and the TCU. > > Signed-off-by: Sharat Masetty <smasetty@codeaurora.org> > --- > v2: Addressed review comments from Doug > > Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > index 6515dbe..ba5dba4 100644 > --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > @@ -28,6 +28,7 @@ properties: > - enum: > - qcom,msm8996-smmu-v2 > - qcom,msm8998-smmu-v2 > + - qcom,sc7180-smmu-v2 > - qcom,sdm845-smmu-v2 > - const: qcom,smmu-v2 > > @@ -113,16 +114,23 @@ properties: > present in such cases. > > clock-names: > + minItems: 2 > + maxItems: 3 > items: > - const: bus > - const: iface > + - const: mem_iface Hi Sharat - I think there was a bit of confusion due to renaming between downstream and upstream. Currently for the sdm845 and friends we have: clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>, <&gcc GCC_GPU_CFG_AHB_CLK>; clock-names = "bus", "iface"; Confusingly these same clocks downstream are "mem_iface_clk" and "iface_clk" respectively. It looks like you are trying to add GCC_DDRSS_GPU_AXI_CLK as "mem_iface" which was formerly "mem_clk" downstream. I'm not sure if the naming change is intentional or you were trying to make upstream and downstream match and didn't realize that they were renamed. I'm not sure if we need DDRSS_GPU_AXI_CLK or not. Empirically it works without it for sdm845 (I don't have a sc7180 to test) but we should probably loop back with either the clock team or the hardware designers to be sure there isn't a corner case that is missing. I agree with Doug that its always best if we don't need to add a clock. Jordan > > clocks: > + minItems: 2 > + maxItems: 3 > items: > - description: bus clock required for downstream bus access and for the > smmu ptw > - description: interface clock required to access smmu's registers > through the TCU's programming interface. > + - description: clock required for the inner working of SMMU TBUs and the > + TCU like the pagetable walks and the TLB flushes. > > power-domains: > maxItems: 1 > -- > 1.9.1 >
Hi, On Thu, Apr 30, 2020 at 11:12 AM Jordan Crouse <jcrouse@codeaurora.org> wrote: > > On Thu, Apr 30, 2020 at 09:29:47AM +0530, Sharat Masetty wrote: > > This patch adds a new compatible string for sc7180 and also an > > additional clock listing needed to power the TBUs and the TCU. > > > > Signed-off-by: Sharat Masetty <smasetty@codeaurora.org> > > --- > > v2: Addressed review comments from Doug > > > > Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > > index 6515dbe..ba5dba4 100644 > > --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > > +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > > @@ -28,6 +28,7 @@ properties: > > - enum: > > - qcom,msm8996-smmu-v2 > > - qcom,msm8998-smmu-v2 > > + - qcom,sc7180-smmu-v2 > > - qcom,sdm845-smmu-v2 > > - const: qcom,smmu-v2 > > > > @@ -113,16 +114,23 @@ properties: > > present in such cases. > > > > clock-names: > > + minItems: 2 > > + maxItems: 3 > > items: > > - const: bus > > - const: iface > > + - const: mem_iface > > Hi Sharat - > > I think there was a bit of confusion due to renaming between downstream and > upstream. Currently for the sdm845 and friends we have: > > clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>, > <&gcc GCC_GPU_CFG_AHB_CLK>; > clock-names = "bus", "iface"; > > Confusingly these same clocks downstream are "mem_iface_clk" and "iface_clk" > respectively. > > It looks like you are trying to add GCC_DDRSS_GPU_AXI_CLK as "mem_iface" which > was formerly "mem_clk" downstream. I'm not sure if the naming change is > intentional or you were trying to make upstream and downstream match and didn't > realize that they were renamed. > > I'm not sure if we need DDRSS_GPU_AXI_CLK or not. Empirically it works without > it for sdm845 (I don't have a sc7180 to test) but we should probably loop back > with either the clock team or the hardware designers to be sure there isn't a > corner case that is missing. I agree with Doug that its always best if we don't > need to add a clock. I can confirm that on sc7180 the GPU seems to come up just fine without the clock being specified in the iommu node. Definitely would be good to know what's broken and if nothing is broken maybe we can change this patch to just add the sc7180 compatible string and drop the clock. I do note that the GMU already has a reference to the same "GCC_DDRSS_GPU_AXI_CLK" clock. -Doug
On 4/30/2020 11:51 PM, Doug Anderson wrote: > Hi, > > On Thu, Apr 30, 2020 at 11:12 AM Jordan Crouse <jcrouse@codeaurora.org> wrote: >> On Thu, Apr 30, 2020 at 09:29:47AM +0530, Sharat Masetty wrote: >>> This patch adds a new compatible string for sc7180 and also an >>> additional clock listing needed to power the TBUs and the TCU. >>> >>> Signed-off-by: Sharat Masetty <smasetty@codeaurora.org> >>> --- >>> v2: Addressed review comments from Doug >>> >>> Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 8 ++++++++ >>> 1 file changed, 8 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml >>> index 6515dbe..ba5dba4 100644 >>> --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml >>> +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml >>> @@ -28,6 +28,7 @@ properties: >>> - enum: >>> - qcom,msm8996-smmu-v2 >>> - qcom,msm8998-smmu-v2 >>> + - qcom,sc7180-smmu-v2 >>> - qcom,sdm845-smmu-v2 >>> - const: qcom,smmu-v2 >>> >>> @@ -113,16 +114,23 @@ properties: >>> present in such cases. >>> >>> clock-names: >>> + minItems: 2 >>> + maxItems: 3 >>> items: >>> - const: bus >>> - const: iface >>> + - const: mem_iface >> Hi Sharat - >> >> I think there was a bit of confusion due to renaming between downstream and >> upstream. Currently for the sdm845 and friends we have: >> >> clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>, >> <&gcc GCC_GPU_CFG_AHB_CLK>; >> clock-names = "bus", "iface"; >> >> Confusingly these same clocks downstream are "mem_iface_clk" and "iface_clk" >> respectively. >> >> It looks like you are trying to add GCC_DDRSS_GPU_AXI_CLK as "mem_iface" which >> was formerly "mem_clk" downstream. I'm not sure if the naming change is >> intentional or you were trying to make upstream and downstream match and didn't >> realize that they were renamed. >> >> I'm not sure if we need DDRSS_GPU_AXI_CLK or not. Empirically it works without >> it for sdm845 (I don't have a sc7180 to test) but we should probably loop back >> with either the clock team or the hardware designers to be sure there isn't a >> corner case that is missing. I agree with Doug that its always best if we don't >> need to add a clock. Thanks Jordan and Doug for the updates. My intention was to add the third clock as listed downstream, but as you said the naming is a bit misleading. From the clock GCC_DDRSS_GPU_AXI_CLK description, this is needed for the GPU to DDR access and all transactions to the DDR from the GPU go through the SMMU. It is listed in the SMMU dt node because its needed by SMMU to perform pagetable walks. I think we may be fine by not listing this clock in the SMMU node because the same clock is listed in both the GMU and also the GPU. > I can confirm that on sc7180 the GPU seems to come up just fine > without the clock being specified in the iommu node. Definitely would > be good to know what's broken and if nothing is broken maybe we can > change this patch to just add the sc7180 compatible string and drop > the clock. I do note that the GMU already has a reference to the same > "GCC_DDRSS_GPU_AXI_CLK" clock. > > -Doug > _______________________________________________ > Freedreno mailing list > Freedreno@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/freedreno
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml index 6515dbe..ba5dba4 100644 --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml @@ -28,6 +28,7 @@ properties: - enum: - qcom,msm8996-smmu-v2 - qcom,msm8998-smmu-v2 + - qcom,sc7180-smmu-v2 - qcom,sdm845-smmu-v2 - const: qcom,smmu-v2 @@ -113,16 +114,23 @@ properties: present in such cases. clock-names: + minItems: 2 + maxItems: 3 items: - const: bus - const: iface + - const: mem_iface clocks: + minItems: 2 + maxItems: 3 items: - description: bus clock required for downstream bus access and for the smmu ptw - description: interface clock required to access smmu's registers through the TCU's programming interface. + - description: clock required for the inner working of SMMU TBUs and the + TCU like the pagetable walks and the TLB flushes. power-domains: maxItems: 1
This patch adds a new compatible string for sc7180 and also an additional clock listing needed to power the TBUs and the TCU. Signed-off-by: Sharat Masetty <smasetty@codeaurora.org> --- v2: Addressed review comments from Doug Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) -- 1.9.1