2021-01-24 14:00:56

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 1/4] ARM: dts: qcom: msm8974: add gpu support

From: Brian Masney <[email protected]>

Add support for the a3xx GPU

Signed-off-by: Brian Masney <[email protected]>
Signed-off-by: Iskren Chernev <[email protected]>
Tested-by: Alexey Minnekhanov <[email protected]>
Reviewed-by: Brian Masney <[email protected]>
---
Changes in v2:
- base set to next-20210122
- add tags from v1 replies
- add Signed-off-by: me on first three patches
- add commit message to 2nd patch

v1: https://lkml.org/lkml/2020/12/30/322

arch/arm/boot/dts/qcom-msm8974.dtsi | 45 +++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 51f5f904f9eb9..c399446d8154e 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -1399,6 +1399,51 @@ cnoc: interconnect@fc480000 {
<&rpmcc RPM_SMD_CNOC_A_CLK>;
};

+ gpu_opp_table: opp_table {
+ status = "disabled";
+
+ compatible = "operating-points-v2";
+
+ opp-800000000 {
+ opp-hz = /bits/ 64 <800000000>;
+ };
+
+ opp-500000000 {
+ opp-hz = /bits/ 64 <500000000>;
+ };
+
+ opp-275000000 {
+ opp-hz = /bits/ 64 <275000000>;
+ };
+ };
+
+ gpu: adreno@fdb00000 {
+ status = "disabled";
+
+ compatible = "qcom,adreno-330.2",
+ "qcom,adreno";
+ reg = <0xfdb00000 0x10000>;
+ reg-names = "kgsl_3d0_reg_memory";
+ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "kgsl_3d0_irq";
+ clock-names = "core",
+ "iface",
+ "mem_iface";
+ clocks = <&mmcc OXILI_GFX3D_CLK>,
+ <&mmcc OXILICX_AHB_CLK>,
+ <&mmcc OXILICX_AXI_CLK>;
+ sram = <&gmu_sram>;
+ power-domains = <&mmcc OXILICX_GDSC>;
+ operating-points-v2 = <&gpu_opp_table>;
+
+ interconnects = <&mmssnoc MNOC_MAS_GRAPHICS_3D &bimc BIMC_SLV_EBI_CH0>,
+ <&ocmemnoc OCMEM_VNOC_MAS_GFX3D &ocmemnoc OCMEM_SLV_OCMEM>;
+ interconnect-names = "gfx-mem",
+ "ocmem";
+
+ // iommus = <&gpu_iommu 0>;
+ };
+
mdss: mdss@fd900000 {
status = "disabled";


base-commit: 226871e2eda4832d94c3239add7e52ad17b81ce5
--
2.30.0


2021-01-24 14:01:10

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 3/4] ARM: dts: qcom: msm8974-klte: add support for display

From: Samuel Pascua <[email protected]>

Add initial support for the display found on the Samsung Galaxy 5 (klte)
phone. This is based on work from Jonathan Marek & Brian Masney.

Signed-off-by: Samuel Pascua <[email protected]>
Signed-off-by: Iskren Chernev <[email protected]>
---
.../boot/dts/qcom-msm8974-samsung-klte.dts | 58 +++++++++++++++++++
1 file changed, 58 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 5a7ac4a31031f..19c96b47a5dbd 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -453,6 +453,16 @@ int {
bias-pull-down;
};
};
+
+ panel_pin: panel {
+ te {
+ pins = "gpio12";
+ function = "mdp_vsync";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
};

sdhc_1: sdhci@f9824900 {
@@ -705,6 +715,54 @@ opp_table {
adreno@fdb00000 {
status = "ok";
};
+
+ mdss@fd900000 {
+ status = "ok";
+
+ mdp@fd900000 {
+ status = "ok";
+ };
+
+ dsi@fd922800 {
+ status = "ok";
+
+ vdda-supply = <&pma8084_l2>;
+ vdd-supply = <&pma8084_l22>;
+ vddio-supply = <&pma8084_l12>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ports {
+ port@1 {
+ endpoint {
+ remote-endpoint = <&panel_in>;
+ data-lanes = <0 1 2 3>;
+ };
+ };
+ };
+
+ panel: panel@0 {
+ reg = <0>;
+ compatible = "samsung,s6e3fa2";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&panel_pin>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&dsi0_out>;
+ };
+ };
+ };
+ };
+
+ dsi-phy@fd922a00 {
+ status = "ok";
+
+ vddio-supply = <&pma8084_l12>;
+ };
+ };
};

&spmi_bus {
--
2.30.0

2021-01-24 14:01:20

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 2/4] ARM: dts: qcom: msm8974-klte: add support for GPU

From: Samuel Pascua <[email protected]>

Enable adreno and opp_table dt nodes.

Signed-off-by: Samuel Pascua <[email protected]>
Signed-off-by: Iskren Chernev <[email protected]>
Tested-by: Alexey Minnekhanov <[email protected]>
---
arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index f23d1002b8f8b..5a7ac4a31031f 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -697,6 +697,14 @@ fuelgauge@36 {
pinctrl-0 = <&fuelgauge_pin>;
};
};
+
+ opp_table {
+ status = "ok";
+ };
+
+ adreno@fdb00000 {
+ status = "ok";
+ };
};

&spmi_bus {
--
2.30.0

2021-01-24 14:59:42

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH 1/4] ARM: dts: qcom: msm8974: add gpu support

Hi,


> + gpu_opp_table: opp_table {
> + status = "disabled";


Is there a good reason to disable this?


> + opp-800000000 {
> + opp-hz = /bits/ 64 <800000000>;
> + };

No. A330 can't go lightspeed (unless there's some secret ultra-binned msm8974pro-v4-ad-5g). [1]


> +
> + opp-500000000 {
> + opp-hz = /bits/ 64 <500000000>;
> + };
> +
> + opp-275000000 {
> + opp-hz = /bits/ 64 <275000000>;
> + };
> + };

IMHO we should create separate DTs for all revisions of 8974 (sigh) and keep the opp tables in there, only leaving a lowest-common-denominator one here (which according to downstream and the msm/drm driver would be 27000000 /27MHz/) to make it at least probe for everybody..


On a note, max GPU frequencies (based on [1] and grepping for gpu-pwrlevels or qcom,gpu-freq downstream) are:


* 578 MHz for PRO (so -AC)

* 550 MHz is mentioned in [1] but not downstream..

* 450 MHz for everything else (v2.2 has more DVFS steps)


> + // iommus = <&gpu_iommu 0>;

I *think* you're going to need more gpu contexts (user/priv/spare), but don't quote me on that.


Konrad


[1] https://www.anandtech.com/show/7846/the-difference-between-snapdragon-800-and-801-clearing-up-confusion

2021-01-24 15:05:25

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH 2/4] ARM: dts: qcom: msm8974-klte: add support for GPU


> + opp_table {
> + status = "ok";
> + };
> +
> + adreno@fdb00000 {
> + status = "ok";
> + };
> };


Could you use &label instead? Reminds me that I should perhaps finally submit my 8974 cleanups one day..


Konrad

2021-01-24 15:06:43

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: dts: qcom: msm8974-klte: add support for display

> + mdss@fd900000 {
> + status = "ok";
> +
> + mdp@fd900000 {
> + status = "ok";
> + };
> +
> + dsi@fd922800 {
> + status = "ok";
> +
> + vdda-supply = <&pma8084_l2>;
> + vdd-supply = <&pma8084_l22>;
> + vddio-supply = <&pma8084_l12>;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ports {
> + port@1 {
> + endpoint {
> + remote-endpoint = <&panel_in>;
> + data-lanes = <0 1 2 3>;
> + };
> + };
> + };
> +
> + panel: panel@0 {
> + reg = <0>;
> + compatible = "samsung,s6e3fa2";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&panel_pin>;
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <&dsi0_out>;
> + };
> + };
> + };
> + };
> +
> + dsi-phy@fd922a00 {
> + status = "ok";
> +
> + vddio-supply = <&pma8084_l12>;
> + };
> + };
> };
>

Please use &label here. If there's none, add them in msm8974.dtsi.


Konrad

2021-01-24 17:35:35

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: dts: qcom: msm8974-klte: add support for display


> All msm8974 dts(i) files use this style. Deviating from it for this doesn't
> make sense. And yes msm8974 should probably be converted to the newer label
> style (as was done with msm8916 a while ago).

I have a >3k lines commit fixing that. Adding more code that strays from the new style doesn't really help.


Konrad

2021-01-24 17:42:21

by Luca Weiss

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: dts: qcom: msm8974-klte: add support for display

Hi Konrad,

On Sonntag, 24. J?nner 2021 16:04:13 CET Konrad Dybcio wrote:
> > + mdss@fd900000 {
> > + status = "ok";
> > +
> > + mdp@fd900000 {
> > + status = "ok";
> > + };
> > +
> > + dsi@fd922800 {
> > + status = "ok";
> > +
> > + vdda-supply = <&pma8084_l2>;
> > + vdd-supply = <&pma8084_l22>;
> > + vddio-supply = <&pma8084_l12>;
> > +
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + ports {
> > + port@1 {
> > + endpoint {
> > + remote-
endpoint = <&panel_in>;
> > + data-lanes
= <0 1 2 3>;
> > + };
> > + };
> > + };
> > +
> > + panel: panel@0 {
> > + reg = <0>;
> > + compatible = "samsung,s6e3fa2";
> > +
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&panel_pin>;
> > +
> > + port {
> > + panel_in: endpoint {
> > + remote-
endpoint = <&dsi0_out>;
> > + };
> > + };
> > + };
> > + };
> > +
> > + dsi-phy@fd922a00 {
> > + status = "ok";
> > +
> > + vddio-supply = <&pma8084_l12>;
> > + };
> > + };
> >
> > };
>
> Please use &label here. If there's none, add them in msm8974.dtsi.
>

All msm8974 dts(i) files use this style. Deviating from it for this doesn't
make sense. And yes msm8974 should probably be converted to the newer label
style (as was done with msm8916 a while ago).

>
> Konrad

Regards
Luca


2021-01-24 21:10:43

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH 1/4] ARM: dts: qcom: msm8974: add gpu support

On Sun 2021-01-24 15:56:07, Iskren Chernev wrote:
> From: Brian Masney <[email protected]>
>
> Add support for the a3xx GPU

This is phone, right? Can I ask [email protected] to be
cc-ed?

Thank you,
Pavel

--
http://www.livejournal.com/~pavelmachek


Attachments:
(No filename) (293.00 B)
signature.asc (188.00 B)
Digital signature
Download all attachments

2021-01-25 00:17:38

by Brian Masney

[permalink] [raw]
Subject: Re: [PATCH 1/4] ARM: dts: qcom: msm8974: add gpu support

On Sun, Jan 24, 2021 at 03:56:06PM +0100, Konrad Dybcio wrote:
> Hi,
>
>
> > + gpu_opp_table: opp_table {
> > + status = "disabled";
>
>
> Is there a good reason to disable this?
>
>
> > + opp-800000000 {
> > + opp-hz = /bits/ 64 <800000000>;
> > + };
>
> No. A330 can't go lightspeed (unless there's some secret ultra-binned msm8974pro-v4-ad-5g). [1]

Hi Iskren,

I believe that the Nexus 5 GPU frequencies are documented in the
downstream kernel at:
https://github.com/AICP/kernel_lge_hammerhead/blob/n7.1/arch/arm/boot/dts/msm8974-gpu.dtsi#L67

I am fairly certain that the qcom,bus-freq property is an index into the
qcom,msm-bus,vectors-KBps property above. This will map to the
interconnect and operating points in the upstream kernel.

Note that the actual implementation in a3xx_gpu.c and a4xx_gpu.c
currently has this snippet to set the bus speed:

/*
* Set the ICC path to maximum speed for now by multiplying the fastest
* frequency by the bus width (8). We'll want to scale this later on to
* improve battery life.
*/
icc_set_bw(icc_path, 0, Bps_to_icc(gpu->fast_rate) * 8);
icc_set_bw(ocmem_icc_path, 0, Bps_to_icc(gpu->fast_rate) * 8);

This should be fine for the time being. You'll want to document it
correctly in device tree though.

If the v2 changes too much, then feel free to drop my name from the
patch. I thought that I had made these changes already but apparently
not. :/

Brian

2021-01-26 06:13:09

by Iskren Chernev

[permalink] [raw]
Subject: Re: [PATCH 1/4] ARM: dts: qcom: msm8974: add gpu support



On 1/24/21 11:05 PM, Pavel Machek wrote:
> On Sun 2021-01-24 15:56:07, Iskren Chernev wrote:
>> From: Brian Masney <[email protected]>
>>
>> Add support for the a3xx GPU
>
> This is phone, right? Can I ask [email protected] to be
> cc-ed?

CC-ing [email protected].

I'm not sure why you didn't do it :-/

>
> Thank you,
> Pavel
>
>

Regards,
Iskren

2021-01-26 07:17:22

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: dts: qcom: msm8974-klte: add support for display

On Sun 24 Jan 11:33 CST 2021, Konrad Dybcio wrote:

>
> > All msm8974 dts(i) files use this style. Deviating from it for this doesn't
> > make sense. And yes msm8974 should probably be converted to the newer label
> > style (as was done with msm8916 a while ago).
>
> I have a >3k lines commit fixing that. Adding more code that strays
> from the new style doesn't really help.
>

I know how bad it is, so I understand your desire to not have to rebase
that, but I will merge things as they become ready on the list.

So please post your change (perhaps it's posted and I'm failing to find
it in my inbox?) and I'd be happy to merge it so we get it cleaned up!

Thanks,
Bjorn

2021-01-26 07:40:35

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: dts: qcom: msm8974-klte: add support for display


> I know how bad it is, so I understand your desire to not have to rebase
> that, but I will merge things as they become ready on the list.
>
> So please post your change (perhaps it's posted and I'm failing to find
> it in my inbox?) and I'd be happy to merge it so we get it cleaned up!
>
> Thanks,
> Bjorn


Here it is: [1]


Be aware that it truly is humongous and should be split (I couldn't resist adding missing pins/dma while cleaning things up) and it.. was not really intended to be sent as-is. It's also supposed to work on the previous release of Linux, so some Samsung DTs in particular changed since and will need some manual rebasing. But I'll happily leave it as a reference if somebody has the time to pick it up. The konrad/8974 branch in this repo contains more (beware, GPU ones are untested!) 8974 fixes and I have some more on my drive that are.. not really ready for their prime time just yet either..


Konrad



[1] https://github.com/SoMainline/linux/commit/291ea6860f8b95df67d63fbd378d61b3a157ac15

2021-01-26 07:41:20

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: dts: qcom: msm8974-klte: add support for display

On Mon 25 Jan 09:47 CST 2021, Konrad Dybcio wrote:

>
> > I know how bad it is, so I understand your desire to not have to rebase
> > that, but I will merge things as they become ready on the list.
> >
> > So please post your change (perhaps it's posted and I'm failing to find
> > it in my inbox?) and I'd be happy to merge it so we get it cleaned up!
> >
> > Thanks,
> > Bjorn
>
>
> Here it is: [1]
>
>
> Be aware that it truly is humongous and should be split (I couldn't
> resist adding missing pins/dma while cleaning things up) and it.. was
> not really intended to be sent as-is. It's also supposed to work on
> the previous release of Linux, so some Samsung DTs in particular
> changed since and will need some manual rebasing. But I'll happily
> leave it as a reference if somebody has the time to pick it up. The
> konrad/8974 branch in this repo contains more (beware, GPU ones are
> untested!) 8974 fixes and I have some more on my drive that are.. not
> really ready for their prime time just yet either..
>

I like the end result, so please spend some time trying to get this
upstream (which would save you from having to rebase that going forward
:))

As you say I don't think it's appropriate to post or merge it as is, but
you should be able to send patches related to the 7 steps described in
the commit message - and don't be afraid of splitting it in more than
those patches. And we don't need to merge them all at once either...

Regards,
Bjorn