On 1/25/24 22:56, Luca Weiss wrote:
> From: Vladimir Lypak <[email protected]>
>
> Add the GPU node for the Adreno 506 found on this family of SoCs. The
> clock speeds are a bit different per SoC variant, SDM450 maxes out at
> 600MHz while MSM8953 (= SDM625) goes up to 650MHz and SDM632 goes up to
> 725MHz.
>
> To achieve this, create a new sdm450.dtsi to hold the 600MHz OPP and
> use the new dtsi for sdm450-motorola-ali.
>
> Signed-off-by: Vladimir Lypak <[email protected]>
> Co-developed-by: Luca Weiss <[email protected]>
> Signed-off-by: Luca Weiss <[email protected]>
> ---
> arch/arm64/boot/dts/qcom/msm8953.dtsi | 115 +++++++++++++++++++++++
> 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, 138 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi b/arch/arm64/boot/dts/qcom/msm8953.dtsi
> index 91d083871ab0..1fe0c0c4fd15 100644
> --- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
> @@ -1046,6 +1046,94 @@ mdss_dsi1_phy: phy@1a96400 {
> };
> };
>
> + gpu: gpu@1c00000 {
> + compatible = "qcom,adreno-506.0", "qcom,adreno";
> + reg = <0x01c00000 0x40000>;
> + reg-names = "kgsl_3d0_reg_memory";
> + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> +
> + clocks = <&gcc GCC_OXILI_GFX3D_CLK>,
> + <&gcc GCC_OXILI_AHB_CLK>,
> + <&gcc GCC_BIMC_GFX_CLK>,
> + <&gcc GCC_BIMC_GPU_CLK>,
> + <&gcc GCC_OXILI_TIMER_CLK>,
> + <&gcc GCC_OXILI_AON_CLK>;
> + clock-names = "core",
> + "iface",
> + "mem_iface",
> + "alt_mem_iface",
> + "rbbmtimer",
> + "alwayson";
> + power-domains = <&gcc OXILI_GX_GDSC>;
> +
> + iommus = <&gpu_iommu 0>;
> + operating-points-v2 = <&gpu_opp_table>;
> +
> + #cooling-cells = <2>;
> +
> + status = "disabled";
> +
> + zap-shader {
> + memory-region = <&zap_shader_region>;
> + };
> +
> + gpu_opp_table: opp-table {
> + compatible = "operating-points-v2";
> +
> + opp-19200000 {
> + opp-hz = /bits/ 64 <19200000>;
> + opp-supported-hw = <0xff>;
> + required-opps = <&rpmpd_opp_min_svs>;
> + };
If you remove all OPPs but this one, can the GPU still spit out pixels?
Konrad
On Freitag, 26. J?nner 2024 00:50:43 CET Konrad Dybcio wrote:
> On 1/25/24 22:56, Luca Weiss wrote:
> > From: Vladimir Lypak <[email protected]>
> >
> > Add the GPU node for the Adreno 506 found on this family of SoCs. The
> > clock speeds are a bit different per SoC variant, SDM450 maxes out at
> > 600MHz while MSM8953 (= SDM625) goes up to 650MHz and SDM632 goes up to
> > 725MHz.
> >
> > To achieve this, create a new sdm450.dtsi to hold the 600MHz OPP and
> > use the new dtsi for sdm450-motorola-ali.
> >
> > Signed-off-by: Vladimir Lypak <[email protected]>
> > Co-developed-by: Luca Weiss <[email protected]>
> > Signed-off-by: Luca Weiss <[email protected]>
> > ---
> >
> > arch/arm64/boot/dts/qcom/msm8953.dtsi | 115
> > +++++++++++++++++++++++
> > 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, 138 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi
> > b/arch/arm64/boot/dts/qcom/msm8953.dtsi index 91d083871ab0..1fe0c0c4fd15
> > 100644
> > --- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
> > @@ -1046,6 +1046,94 @@ mdss_dsi1_phy: phy@1a96400 {
> >
> > };
> >
> > };
> >
> > + gpu: gpu@1c00000 {
> > + compatible = "qcom,adreno-506.0", "qcom,adreno";
> > + reg = <0x01c00000 0x40000>;
> > + reg-names = "kgsl_3d0_reg_memory";
> > + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> > +
> > + clocks = <&gcc GCC_OXILI_GFX3D_CLK>,
> > + <&gcc GCC_OXILI_AHB_CLK>,
> > + <&gcc GCC_BIMC_GFX_CLK>,
> > + <&gcc GCC_BIMC_GPU_CLK>,
> > + <&gcc GCC_OXILI_TIMER_CLK>,
> > + <&gcc GCC_OXILI_AON_CLK>;
> > + clock-names = "core",
> > + "iface",
> > + "mem_iface",
> > + "alt_mem_iface",
> > + "rbbmtimer",
> > + "alwayson";
> > + power-domains = <&gcc OXILI_GX_GDSC>;
> > +
> > + iommus = <&gpu_iommu 0>;
> > + operating-points-v2 = <&gpu_opp_table>;
> > +
> > + #cooling-cells = <2>;
> > +
> > + status = "disabled";
> > +
> > + zap-shader {
> > + memory-region = <&zap_shader_region>;
> > + };
> > +
> > + gpu_opp_table: opp-table {
> > + compatible = "operating-points-v2";
> > +
> > + opp-19200000 {
> > + opp-hz = /bits/ 64 <19200000>;
> > + opp-supported-hw = <0xff>;
> > + required-opps = <&rpmpd_opp_min_svs>;
> > + };
>
> If you remove all OPPs but this one, can the GPU still spit out pixels?
Yep, phosh is starting and is rendering at a few fps.
fairphone-fp3:~$ cat /sys/devices/platform/soc@0/1c00000.gpu/devfreq/1c00000.gpu/min_freq
19200000
fairphone-fp3:~$ cat /sys/devices/platform/soc@0/1c00000.gpu/devfreq/1c00000.gpu/max_freq
19200000
fairphone-fp3:~$ cat /sys/devices/platform/soc@0/1c00000.gpu/devfreq/1c00000.gpu/cur_freq
19200000
Regards
Luca
>
> Konrad
On 27.01.2024 18:32, Luca Weiss wrote:
> On Freitag, 26. Jänner 2024 00:50:43 CET Konrad Dybcio wrote:
>> On 1/25/24 22:56, Luca Weiss wrote:
>>> From: Vladimir Lypak <[email protected]>
>>>
>>> Add the GPU node for the Adreno 506 found on this family of SoCs. The
>>> clock speeds are a bit different per SoC variant, SDM450 maxes out at
>>> 600MHz while MSM8953 (= SDM625) goes up to 650MHz and SDM632 goes up to
>>> 725MHz.
>>>
>>> To achieve this, create a new sdm450.dtsi to hold the 600MHz OPP and
>>> use the new dtsi for sdm450-motorola-ali.
>>>
>>> Signed-off-by: Vladimir Lypak <[email protected]>
>>> Co-developed-by: Luca Weiss <[email protected]>
>>> Signed-off-by: Luca Weiss <[email protected]>
>>> ---
>>>
>>> arch/arm64/boot/dts/qcom/msm8953.dtsi | 115
>>> +++++++++++++++++++++++
>>> 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, 138 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi
>>> b/arch/arm64/boot/dts/qcom/msm8953.dtsi index 91d083871ab0..1fe0c0c4fd15
>>> 100644
>>> --- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
>>> +++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
>>> @@ -1046,6 +1046,94 @@ mdss_dsi1_phy: phy@1a96400 {
>>>
>>> };
>>>
>>> };
>>>
>>> + gpu: gpu@1c00000 {
>>> + compatible = "qcom,adreno-506.0", "qcom,adreno";
>>> + reg = <0x01c00000 0x40000>;
>>> + reg-names = "kgsl_3d0_reg_memory";
>>> + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
>>> +
>>> + clocks = <&gcc GCC_OXILI_GFX3D_CLK>,
>>> + <&gcc GCC_OXILI_AHB_CLK>,
>>> + <&gcc GCC_BIMC_GFX_CLK>,
>>> + <&gcc GCC_BIMC_GPU_CLK>,
>>> + <&gcc GCC_OXILI_TIMER_CLK>,
>>> + <&gcc GCC_OXILI_AON_CLK>;
>>> + clock-names = "core",
>>> + "iface",
>>> + "mem_iface",
>>> + "alt_mem_iface",
>>> + "rbbmtimer",
>>> + "alwayson";
>>> + power-domains = <&gcc OXILI_GX_GDSC>;
>>> +
>>> + iommus = <&gpu_iommu 0>;
>>> + operating-points-v2 = <&gpu_opp_table>;
>>> +
>>> + #cooling-cells = <2>;
>>> +
>>> + status = "disabled";
>>> +
>>> + zap-shader {
>>> + memory-region = <&zap_shader_region>;
>>> + };
>>> +
>>> + gpu_opp_table: opp-table {
>>> + compatible = "operating-points-v2";
>>> +
>>> + opp-19200000 {
>>> + opp-hz = /bits/ 64 <19200000>;
>>> + opp-supported-hw = <0xff>;
>>> + required-opps = <&rpmpd_opp_min_svs>;
>>> + };
>>
>> If you remove all OPPs but this one, can the GPU still spit out pixels?
>
> Yep, phosh is starting and is rendering at a few fps.
>
> fairphone-fp3:~$ cat /sys/devices/platform/soc@0/1c00000.gpu/devfreq/1c00000.gpu/min_freq
> 19200000
> fairphone-fp3:~$ cat /sys/devices/platform/soc@0/1c00000.gpu/devfreq/1c00000.gpu/max_freq
> 19200000
> fairphone-fp3:~$ cat /sys/devices/platform/soc@0/1c00000.gpu/devfreq/1c00000.gpu/cur_freq
> 19200000
Interesting..
Reviewed-by: Konrad Dybcio <[email protected]>
Konrad