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

Subsystems: the rest

STALE2013d REVIEWED: 2 (0M)

2 review trailers.

16 messages, 6 authors, 2021-01-26 · open the first message on its own page

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

From: Iskren Chernev <iskren.chernev@gmail.com>
Date: 2021-01-24 13:58:31

From: Brian Masney <redacted>

Add support for the a3xx GPU

Signed-off-by: Brian Masney <redacted>
Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
Tested-by: Alexey Minnekhanov <redacted>
Reviewed-by: Brian Masney <redacted>
---
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

[PATCH 4/4] ARM: dts: qcom: msm8974-klte: Mark essential regulators

From: Iskren Chernev <iskren.chernev@gmail.com>
Date: 2021-01-24 13:59:02

s1 and l12 regulators are used for the memory and cache on the Samsung
S5 (klte). If they are turned off the phone shuts down. So mark them as
always-on to prevent that from happening.

Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
Tested-by: Alexey Minnekhanov <redacted>
---
 arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 19c96b47a5dbd..27323403aa71d 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -30,6 +30,7 @@ pma8084-regulators {
 					pma8084_s1: s1 {
 						regulator-min-microvolt = <675000>;
 						regulator-max-microvolt = <1050000>;
+						regulator-always-on;
 					};
 
 					pma8084_s2: s2 {
@@ -115,6 +116,7 @@ pma8084_l11: l11 {
 					pma8084_l12: l12 {
 						regulator-min-microvolt = <1800000>;
 						regulator-max-microvolt = <1800000>;
+						regulator-always-on;
 					};
 
 					pma8084_l13: l13 {
-- 
2.30.0

Re: [PATCH 4/4] ARM: dts: qcom: msm8974-klte: Mark essential regulators

From: Konrad Dybcio <hidden>
Date: 2021-01-24 15:15:36

On 24.01.2021 14:56, Iskren Chernev wrote:
quoted hunk
s1 and l12 regulators are used for the memory and cache on the Samsung
S5 (klte). If they are turned off the phone shuts down. So mark them as
always-on to prevent that from happening.

Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
Tested-by: Alexey Minnekhanov <redacted>
---
 arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 19c96b47a5dbd..27323403aa71d 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -30,6 +30,7 @@ pma8084-regulators {
 					pma8084_s1: s1 {
 						regulator-min-microvolt = <675000>;
 						regulator-max-microvolt = <1050000>;
+						regulator-always-on;
 					};
 
 					pma8084_s2: s2 {
@@ -115,6 +116,7 @@ pma8084_l11: l11 {
 					pma8084_l12: l12 {
 						regulator-min-microvolt = <1800000>;
 						regulator-max-microvolt = <1800000>;
+						regulator-always-on;
 					};
 
 					pma8084_l13: l13 {

Reviewed-by: Konrad Dybcio <redacted>


Konrad

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

From: Iskren Chernev <iskren.chernev@gmail.com>
Date: 2021-01-24 13:59:11

From: Samuel Pascua <redacted>

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 <redacted>
Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
---
 .../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

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

From: Konrad Dybcio <hidden>
Date: 2021-01-24 15:05:22

+	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

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

From: Luca Weiss <hidden>
Date: 2021-01-24 17:40:52

Hi Konrad,

On Sonntag, 24. Jänner 2021 16:04:13 CET Konrad Dybcio wrote:
quoted
+	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>;
quoted
+						data-lanes 
= <0 1 2 3>;
quoted
+					};
+				};
+			};
+
+			panel: panel@0 {
+				reg = <0>;
+				compatible = "samsung,s6e3fa2";
+
+				pinctrl-names = "default";
+				pinctrl-0 = <&panel_pin>;
+
+				port {
+					panel_in: endpoint {
+						remote-
endpoint = <&dsi0_out>;
quoted
+					};
+				};
+			};
+		};
+
+		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

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

From: Konrad Dybcio <hidden>
Date: 2021-01-24 17:34:22

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

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

From: Bjorn Andersson <hidden>
Date: 2021-01-26 07:16:33

On Sun 24 Jan 11:33 CST 2021, Konrad Dybcio wrote:
quoted
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

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

From: Konrad Dybcio <hidden>
Date: 2021-01-26 07:36:01

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

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

From: Bjorn Andersson <hidden>
Date: 2021-01-26 07:38:07

On Mon 25 Jan 09:47 CST 2021, Konrad Dybcio wrote:
quoted
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

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

From: Iskren Chernev <iskren.chernev@gmail.com>
Date: 2021-01-24 13:59:59

From: Samuel Pascua <redacted>

Enable adreno and opp_table dt nodes.

Signed-off-by: Samuel Pascua <redacted>
Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
Tested-by: Alexey Minnekhanov <redacted>
---
 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

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

From: Konrad Dybcio <hidden>
Date: 2021-01-24 15:03:57

+	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

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

From: Konrad Dybcio <hidden>
Date: 2021-01-24 14:57:10

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

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

From: Brian Masney <hidden>
Date: 2021-01-25 00:14:39

On Sun, Jan 24, 2021 at 03:56:06PM +0100, Konrad Dybcio wrote:
Hi,

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

Is there a good reason to disable this?

quoted
+			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

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

From: Pavel Machek <hidden>
Date: 2021-01-24 21:06:42

On Sun 2021-01-24 15:56:07, Iskren Chernev wrote:
From: Brian Masney <redacted>

Add support for the a3xx GPU
This is phone, right? Can I ask phone-devel@vger.kernel.org to be
cc-ed?

Thank you,
							Pavel
							
-- 
http://www.livejournal.com/~pavelmachek

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

From: Iskren Chernev <iskren.chernev@gmail.com>
Date: 2021-01-26 06:11:18


On 1/24/21 11:05 PM, Pavel Machek wrote:
On Sun 2021-01-24 15:56:07, Iskren Chernev wrote:
quoted
From: Brian Masney <redacted>

Add support for the a3xx GPU
This is phone, right? Can I ask phone-devel@vger.kernel.org to be
cc-ed?
CC-ing phone-devel@vger.kernel.org.

I'm not sure why you didn't do it :-/
Thank you,
							Pavel
							
Regards,
Iskren
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help