[RFC,0/2] Add GPU support to MSM8953 SoC

Message ID 20240125-msm8953-gpu-v1-0-f6493a5951f3@z3ntu.xyz
Headers
Series Add GPU support to MSM8953 SoC |

Message

Luca Weiss Jan. 25, 2024, 9:56 p.m. UTC
  Add the GPU IOMMU and GPU nodes to the msm8953 dtsi so GPU can work.

First of all, functionally this series looks fine, tested on
sdm632-fairphone-fp3.

Secondly and the reason this is marked RFC for now is basically just dt
bindings check fail, and some questions regarding IOMMU compatible.

Basically I'm unsure what compatible (or even driver) IOMMU should use.
qcom,msm-iommu-v2 is now in the patchset which seems to be okay, and
also should handle the gfx3d_secure secure context correctly. Apart from
some special handling there qcom,msm-iommu-v1 compatible is equivalent
on the driver side.

Currently the dt bindings say qcom,msm8953-iommu should be followed by
qcom,msm-iommu-v1 which is the case for apps_iommu. But if we use
qcom,msm-iommu-v2 for gpu_iommu then we can't re-use the same
qcom,msm8953-iommu I think.

Possible solutions:
1. Switch apps_iommu to use qcom,msm-iommu-v2 in dts & bindings? Since
   there's basically no special handling for either in the driver I
   don't forsee any problems. Then we can also use -v2 for gpu_iommu no
   problem.
2. Use qcom,msm-iommu-v1 for gpu_iommu? From some testing it also seems
   to work, I guess because the secure context is never used?
3. Use arm_smmu driver for gpu_iommu? Vladimir Lypak has suggested that,
   but that would at least need some more patching to work on msm8953.
   I probably don't have the motivation to take this on myself. Also
   what benefit would it bring?

Hope I haven't rambled too long here and it's somewhat understandable.

Please let me know what you think, which direction we can take to
resolve this.

(Also GPU clock-names dt-schema check fails but that seems to be the
 case on more a5xx GPUs also)

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
---
Vladimir Lypak (2):
      arm64: dts: qcom: msm8953: Add GPU IOMMU
      arm64: dts: qcom: msm8953: Add GPU

 arch/arm64/boot/dts/qcom/msm8953.dtsi            | 146 +++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sdm450-motorola-ali.dts |   2 +-
 arch/arm64/boot/dts/qcom/sdm450.dtsi             |  14 +++
 arch/arm64/boot/dts/qcom/sdm632.dtsi             |   8 ++
 4 files changed, 169 insertions(+), 1 deletion(-)
---
base-commit: 0e21aa976976d5fba8cd1f8f64bcce49beb5f895
change-id: 20231212-msm8953-gpu-4c085365f594

Best regards,
  

Comments

Luca Weiss Jan. 27, 2024, 5:24 p.m. UTC | #1
On Freitag, 26. Jänner 2024 00:49:55 CET Konrad Dybcio wrote:
> On 1/25/24 23:24, Dmitry Baryshkov wrote:
> > On 25/01/2024 23:56, Luca Weiss wrote:
> >> From: Vladimir Lypak <vladimir.lypak@gmail.com>
> >> 
> >> Add the IOMMU used for the GPU on MSM8953.
> >> 
> >> Signed-off-by: Vladimir Lypak <vladimir.lypak@gmail.com>
> >> ---
> >>   arch/arm64/boot/dts/qcom/msm8953.dtsi | 31
> >> +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
> >> 
> >> diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi
> >> b/arch/arm64/boot/dts/qcom/msm8953.dtsi index dcb5c98b793c..91d083871ab0
> >> 100644
> >> --- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
> >> +++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
> >> @@ -1046,6 +1046,37 @@ mdss_dsi1_phy: phy@1a96400 {
> >>               };
> >>           };
> >> +        gpu_iommu: iommu@1c48000 {
> > 
> > Nit: most of the platforms use the adreno_smmu label. But maybe the
> > msm-iommu vs arm-smmu makes difference here.
> Not really :)
> 
> Please keep the labels unified

Ack, renaming to adreno_smmu

> 
> > Nevertheless:
> > 
> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > 
> >> +            compatible = "qcom,msm8953-iommu", "qcom,msm-iommu-v2";
> >> +            ranges = <0 0x01c48000 0x8000>;
> >> +
> >> +            clocks = <&gcc GCC_OXILI_AHB_CLK>,
> >> +                 <&gcc GCC_BIMC_GFX_CLK>;
> 
> And align these

They are?

Also any comment about the issues listed in the cover letter?

Regards
Luca

> 
> Konrad
  
Konrad Dybcio Feb. 2, 2024, 12:19 p.m. UTC | #2
On 27.01.2024 18:24, Luca Weiss wrote:
> On Freitag, 26. Jänner 2024 00:49:55 CET Konrad Dybcio wrote:
>> On 1/25/24 23:24, Dmitry Baryshkov wrote:
>>> On 25/01/2024 23:56, Luca Weiss wrote:
>>>> From: Vladimir Lypak <vladimir.lypak@gmail.com>
>>>>
>>>> Add the IOMMU used for the GPU on MSM8953.
>>>>
>>>> Signed-off-by: Vladimir Lypak <vladimir.lypak@gmail.com>
>>>> ---
>>>>   arch/arm64/boot/dts/qcom/msm8953.dtsi | 31
>>>> +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi
>>>> b/arch/arm64/boot/dts/qcom/msm8953.dtsi index dcb5c98b793c..91d083871ab0
>>>> 100644
>>>> --- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
>>>> @@ -1046,6 +1046,37 @@ mdss_dsi1_phy: phy@1a96400 {
>>>>               };
>>>>           };
>>>> +        gpu_iommu: iommu@1c48000 {
>>>
>>> Nit: most of the platforms use the adreno_smmu label. But maybe the
>>> msm-iommu vs arm-smmu makes difference here.
>> Not really :)
>>
>> Please keep the labels unified
> 
> Ack, renaming to adreno_smmu
> 
>>
>>> Nevertheless:
>>>
>>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>>>
>>>> +            compatible = "qcom,msm8953-iommu", "qcom,msm-iommu-v2";
>>>> +            ranges = <0 0x01c48000 0x8000>;
>>>> +
>>>> +            clocks = <&gcc GCC_OXILI_AHB_CLK>,
>>>> +                 <&gcc GCC_BIMC_GFX_CLK>;
>>
>> And align these
> 
> They are?

Not in my email client :P, anyway..

> 
> Also any comment about the issues listed in the cover letter?

I think v2 on all smmus on this platform is right

Konrad
  
Bjorn Andersson Feb. 7, 2024, 4:46 a.m. UTC | #3
On Thu, 25 Jan 2024 22:56:24 +0100, Luca Weiss wrote:
> Add the GPU IOMMU and GPU nodes to the msm8953 dtsi so GPU can work.
> 
> First of all, functionally this series looks fine, tested on
> sdm632-fairphone-fp3.
> 
> Secondly and the reason this is marked RFC for now is basically just dt
> bindings check fail, and some questions regarding IOMMU compatible.
> 
> [...]

Applied, thanks!

[1/2] arm64: dts: qcom: msm8953: Add GPU IOMMU
      commit: 1e48ad0d85f05fb4f383cba006525aa3f253472b
[2/2] arm64: dts: qcom: msm8953: Add GPU
      commit: 655815649fcd9bf80b21bcac071633ce80c358c0

Best regards,