* [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250
@ 2020-06-29 21:17 Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings Jonathan Marek
` (5 more replies)
0 siblings, 6 replies; 17+ messages in thread
From: Jonathan Marek @ 2020-06-29 21:17 UTC (permalink / raw)
To: linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Deepak Katragadda,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:COMMON CLK FRAMEWORK, open list, Michael Turquette,
Rob Herring, Stephen Boyd, Taniya Das, Vinod Koul
This series adds the missing clock drivers and dts nodes to enable
the GPU on both SM8150 and SM8250.
Note an extra patch [1] is still required for GPU to work on SM8250.
Changes in V2:
* Added "clk: qcom: gcc: fix sm8150 GPU and NPU clocks" to fix the newly added
SM8150 GPU gcc clocks
* Added "Fixes:" tag to "clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL"
* Added yaml schemas to gpucc dt-bindings patches
* Added "clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc drivers" and changed
gpucc patches to use it.
* Removed CLK_IS_CRITICAL from gpu_cc_ahb_clk
* Added missing rpmh regulator level for sm8250 GPU clock levels
* Use sm8150/sm8250 iommu compatibles in dts
* Add gcc_gpu_gpll0_clk_src/gcc_gpu_gpll0_div_clk_src to gpucc clocks in dts
[1] https://gist.github.com/flto/784f1aca761ebf2fe6c105719a4a04ca
Jonathan Marek (13):
clk: qcom: gcc: fix sm8150 GPU and NPU clocks
clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL
clk: qcom: clk-alpha-pll: same regs and ops for trion and lucid
clk: qcom: clk-alpha-pll: use the right PCAL_DONE value for lucid pll
clk: qcom: gcc: remove unnecessary vco_table from SM8150
dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings
dt-bindings: clock: Introduce SM8250 QCOM Graphics clock bindings
clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc drivers
clk: qcom: Add graphics clock controller driver for SM8150
clk: qcom: Add graphics clock controller driver for SM8250
dt-bindings: power: Add missing rpmpd rpmh regulator level
arm64: dts: qcom: add sm8150 GPU nodes
arm64: dts: qcom: add sm8250 GPU nodes
.../bindings/clock/qcom,sm8150-gpucc.yaml | 74 +++
.../bindings/clock/qcom,sm8250-gpucc.yaml | 74 +++
arch/arm64/boot/dts/qcom/sm8150.dtsi | 136 ++++++
arch/arm64/boot/dts/qcom/sm8250.dtsi | 143 ++++++
drivers/clk/qcom/Kconfig | 16 +
drivers/clk/qcom/Makefile | 2 +
drivers/clk/qcom/clk-alpha-pll.c | 70 ++-
drivers/clk/qcom/clk-alpha-pll.h | 15 +-
drivers/clk/qcom/gcc-sm8150.c | 26 +-
drivers/clk/qcom/gdsc.c | 25 +
drivers/clk/qcom/gdsc.h | 1 +
drivers/clk/qcom/gpucc-sc7180.c | 27 +-
drivers/clk/qcom/gpucc-sdm845.c | 27 +-
drivers/clk/qcom/gpucc-sm8150.c | 421 ++++++++++++++++
drivers/clk/qcom/gpucc-sm8250.c | 450 ++++++++++++++++++
include/dt-bindings/clock/qcom,gpucc-sm8150.h | 40 ++
include/dt-bindings/clock/qcom,gpucc-sm8250.h | 40 ++
include/dt-bindings/power/qcom-rpmpd.h | 1 +
18 files changed, 1479 insertions(+), 109 deletions(-)
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
create mode 100644 drivers/clk/qcom/gpucc-sm8150.c
create mode 100644 drivers/clk/qcom/gpucc-sm8250.c
create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8150.h
create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8250.h
--
2.26.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings
2020-06-29 21:17 [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Jonathan Marek
@ 2020-06-29 21:17 ` Jonathan Marek
2020-07-02 20:43 ` Rob Herring
2020-07-02 20:44 ` Rob Herring
2020-06-29 21:17 ` [RESEND PATCH v2 07/13] dt-bindings: clock: Introduce SM8250 " Jonathan Marek
` (4 subsequent siblings)
5 siblings, 2 replies; 17+ messages in thread
From: Jonathan Marek @ 2020-06-29 21:17 UTC (permalink / raw)
To: linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, open list:COMMON CLK FRAMEWORK,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list
Add device tree bindings for graphics clock controller for
Qualcomm Technology Inc's SM8150 SoCs.
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
---
.../bindings/clock/qcom,sm8150-gpucc.yaml | 74 +++++++++++++++++++
include/dt-bindings/clock/qcom,gpucc-sm8150.h | 40 ++++++++++
2 files changed, 114 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8150.h
diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
new file mode 100644
index 000000000000..683b50dd3492
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm8150-gpucc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Graphics Clock & Reset Controller Binding for SM8150
+
+maintainers:
+ -
+
+description: |
+ Qualcomm graphics clock control module which supports the clocks, resets and
+ power domains on SM8150.
+
+ See also dt-bindings/clock/qcom,gpucc-sm8150.h.
+
+properties:
+ compatible:
+ const: qcom,sm8150-gpucc
+
+ clocks:
+ items:
+ - description: Board XO source
+ - description: GPLL0 main branch source
+ - description: GPLL0 div branch source
+
+ clock-names:
+ items:
+ - const: bi_tcxo
+ - const: gcc_gpu_gpll0_clk_src
+ - const: gcc_gpu_gpll0_div_clk_src
+
+ '#clock-cells':
+ const: 1
+
+ '#reset-cells':
+ const: 1
+
+ '#power-domain-cells':
+ const: 1
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - '#clock-cells'
+ - '#reset-cells'
+ - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,gcc-sm8150.h>
+ #include <dt-bindings/clock/qcom,rpmh.h>
+ clock-controller@2c90000 {
+ compatible = "qcom,sm8150-gpucc";
+ reg = <0x2c90000 0x9000>;
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
+ <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+ <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+ clock-names = "bi_tcxo",
+ "gcc_gpu_gpll0_clk_src",
+ "gcc_gpu_gpll0_div_clk_src";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ };
+...
diff --git a/include/dt-bindings/clock/qcom,gpucc-sm8150.h b/include/dt-bindings/clock/qcom,gpucc-sm8150.h
new file mode 100644
index 000000000000..e7cac7fe9739
--- /dev/null
+++ b/include/dt-bindings/clock/qcom,gpucc-sm8150.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8150_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8150_H
+
+/* GPU_CC clock registers */
+#define GPU_CC_AHB_CLK 0
+#define GPU_CC_CRC_AHB_CLK 1
+#define GPU_CC_CX_APB_CLK 2
+#define GPU_CC_CX_GMU_CLK 3
+#define GPU_CC_CX_QDSS_AT_CLK 4
+#define GPU_CC_CX_QDSS_TRIG_CLK 5
+#define GPU_CC_CX_QDSS_TSCTR_CLK 6
+#define GPU_CC_CX_SNOC_DVM_CLK 7
+#define GPU_CC_CXO_AON_CLK 8
+#define GPU_CC_CXO_CLK 9
+#define GPU_CC_GMU_CLK_SRC 10
+#define GPU_CC_GX_GMU_CLK 11
+#define GPU_CC_GX_QDSS_TSCTR_CLK 12
+#define GPU_CC_GX_VSENSE_CLK 13
+#define GPU_CC_PLL1 14
+#define GPU_CC_PLL_TEST_CLK 15
+#define GPU_CC_SLEEP_CLK 16
+
+/* GPU_CC Resets */
+#define GPUCC_GPU_CC_CX_BCR 0
+#define GPUCC_GPU_CC_GFX3D_AON_BCR 1
+#define GPUCC_GPU_CC_GMU_BCR 2
+#define GPUCC_GPU_CC_GX_BCR 3
+#define GPUCC_GPU_CC_SPDM_BCR 4
+#define GPUCC_GPU_CC_XO_BCR 5
+
+/* GPU_CC GDSCRs */
+#define GPU_CX_GDSC 0
+#define GPU_GX_GDSC 1
+
+#endif
--
2.26.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [RESEND PATCH v2 07/13] dt-bindings: clock: Introduce SM8250 QCOM Graphics clock bindings
2020-06-29 21:17 [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings Jonathan Marek
@ 2020-06-29 21:17 ` Jonathan Marek
2020-07-02 20:46 ` Rob Herring
2020-06-29 21:17 ` [RESEND PATCH v2 11/13] dt-bindings: power: Add missing rpmpd rpmh regulator level Jonathan Marek
` (3 subsequent siblings)
5 siblings, 1 reply; 17+ messages in thread
From: Jonathan Marek @ 2020-06-29 21:17 UTC (permalink / raw)
To: linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Rob Herring, open list:COMMON CLK FRAMEWORK,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list
Add device tree bindings for graphics clock controller for
Qualcomm Technology Inc's SM8250 SoCs.
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
---
.../bindings/clock/qcom,sm8250-gpucc.yaml | 74 +++++++++++++++++++
include/dt-bindings/clock/qcom,gpucc-sm8250.h | 40 ++++++++++
2 files changed, 114 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8250.h
diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
new file mode 100644
index 000000000000..2b9c8f97b76d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm8250-gpucc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Graphics Clock & Reset Controller Binding for SM8250
+
+maintainers:
+ -
+
+description: |
+ Qualcomm graphics clock control module which supports the clocks, resets and
+ power domains on SM8250.
+
+ See also dt-bindings/clock/qcom,gpucc-sm8250.h.
+
+properties:
+ compatible:
+ const: qcom,sm8250-gpucc
+
+ clocks:
+ items:
+ - description: Board XO source
+ - description: GPLL0 main branch source
+ - description: GPLL0 div branch source
+
+ clock-names:
+ items:
+ - const: bi_tcxo
+ - const: gcc_gpu_gpll0_clk_src
+ - const: gcc_gpu_gpll0_div_clk_src
+
+ '#clock-cells':
+ const: 1
+
+ '#reset-cells':
+ const: 1
+
+ '#power-domain-cells':
+ const: 1
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - '#clock-cells'
+ - '#reset-cells'
+ - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,gcc-sm8250.h>
+ #include <dt-bindings/clock/qcom,rpmh.h>
+ clock-controller@3d90000 {
+ compatible = "qcom,sm8250-gpucc";
+ reg = <0x3d90000 0x9000>;
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
+ <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+ <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+ clock-names = "bi_tcxo",
+ "gcc_gpu_gpll0_clk_src",
+ "gcc_gpu_gpll0_div_clk_src";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ };
+...
diff --git a/include/dt-bindings/clock/qcom,gpucc-sm8250.h b/include/dt-bindings/clock/qcom,gpucc-sm8250.h
new file mode 100644
index 000000000000..c8fe64e399fd
--- /dev/null
+++ b/include/dt-bindings/clock/qcom,gpucc-sm8250.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8250_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8250_H
+
+/* GPU_CC clock registers */
+#define GPU_CC_AHB_CLK 0
+#define GPU_CC_CRC_AHB_CLK 1
+#define GPU_CC_CX_APB_CLK 2
+#define GPU_CC_CX_GMU_CLK 3
+#define GPU_CC_CX_QDSS_AT_CLK 4
+#define GPU_CC_CX_QDSS_TRIG_CLK 5
+#define GPU_CC_CX_QDSS_TSCTR_CLK 6
+#define GPU_CC_CX_SNOC_DVM_CLK 7
+#define GPU_CC_CXO_AON_CLK 8
+#define GPU_CC_CXO_CLK 9
+#define GPU_CC_GMU_CLK_SRC 10
+#define GPU_CC_GX_GMU_CLK 11
+#define GPU_CC_GX_QDSS_TSCTR_CLK 12
+#define GPU_CC_GX_VSENSE_CLK 13
+#define GPU_CC_PLL1 14
+#define GPU_CC_SLEEP_CLK 15
+#define GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK 16
+
+/* GPU_CC Resets */
+#define GPUCC_GPU_CC_ACD_BCR 0
+#define GPUCC_GPU_CC_CX_BCR 1
+#define GPUCC_GPU_CC_GFX3D_AON_BCR 2
+#define GPUCC_GPU_CC_GMU_BCR 3
+#define GPUCC_GPU_CC_GX_BCR 4
+#define GPUCC_GPU_CC_XO_BCR 5
+
+/* GPU_CC GDSCRs */
+#define GPU_CX_GDSC 0
+#define GPU_GX_GDSC 1
+
+#endif
--
2.26.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [RESEND PATCH v2 11/13] dt-bindings: power: Add missing rpmpd rpmh regulator level
2020-06-29 21:17 [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 07/13] dt-bindings: clock: Introduce SM8250 " Jonathan Marek
@ 2020-06-29 21:17 ` Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 12/13] arm64: dts: qcom: add sm8150 GPU nodes Jonathan Marek
` (2 subsequent siblings)
5 siblings, 0 replies; 17+ messages in thread
From: Jonathan Marek @ 2020-06-29 21:17 UTC (permalink / raw)
To: linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Rob Herring,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list
Add RPMH_REGULATOR_LEVEL_SVS_L0, used by sm8250.
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
---
include/dt-bindings/power/qcom-rpmpd.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/dt-bindings/power/qcom-rpmpd.h b/include/dt-bindings/power/qcom-rpmpd.h
index dc146e44228b..5e61eaf73bdd 100644
--- a/include/dt-bindings/power/qcom-rpmpd.h
+++ b/include/dt-bindings/power/qcom-rpmpd.h
@@ -55,6 +55,7 @@
#define RPMH_REGULATOR_LEVEL_MIN_SVS 48
#define RPMH_REGULATOR_LEVEL_LOW_SVS 64
#define RPMH_REGULATOR_LEVEL_SVS 128
+#define RPMH_REGULATOR_LEVEL_SVS_L0 144
#define RPMH_REGULATOR_LEVEL_SVS_L1 192
#define RPMH_REGULATOR_LEVEL_SVS_L2 224
#define RPMH_REGULATOR_LEVEL_NOM 256
--
2.26.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [RESEND PATCH v2 12/13] arm64: dts: qcom: add sm8150 GPU nodes
2020-06-29 21:17 [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Jonathan Marek
` (2 preceding siblings ...)
2020-06-29 21:17 ` [RESEND PATCH v2 11/13] dt-bindings: power: Add missing rpmpd rpmh regulator level Jonathan Marek
@ 2020-06-29 21:17 ` Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 13/13] arm64: dts: qcom: add sm8250 " Jonathan Marek
2020-07-03 15:03 ` [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Dmitry Baryshkov
5 siblings, 0 replies; 17+ messages in thread
From: Jonathan Marek @ 2020-06-29 21:17 UTC (permalink / raw)
To: linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Rob Herring,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list
This brings up the GPU. Tested on HDK855 by running vulkan CTS.
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
---
arch/arm64/boot/dts/qcom/sm8150.dtsi | 136 +++++++++++++++++++++++++++
1 file changed, 136 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi
index f928ef9fa3a3..2be39eb0ce7f 100644
--- a/arch/arm64/boot/dts/qcom/sm8150.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi
@@ -10,6 +10,7 @@
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/clock/qcom,gcc-sm8150.h>
+#include <dt-bindings/clock/qcom,gpucc-sm8150.h>
/ {
interrupt-parent = <&intc>;
@@ -540,6 +541,141 @@ glink-edge {
};
};
+ gpu: gpu@2c00000 {
+ /*
+ * note: the amd,imageon compatible makes it possible
+ * to use the drm/msm driver without the display node,
+ * make sure to remove it when display node is added
+ */
+ compatible = "qcom,adreno-640.1",
+ "qcom,adreno",
+ "amd,imageon";
+ #stream-id-cells = <16>;
+
+ reg = <0 0x2c00000 0 0x40000>;
+ reg-names = "kgsl_3d0_reg_memory";
+
+ interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+
+ iommus = <&adreno_smmu 0 0x401>;
+
+ operating-points-v2 = <&gpu_opp_table>;
+
+ qcom,gmu = <&gmu>;
+
+ zap-shader {
+ memory-region = <&gpu_mem>;
+ };
+
+ /* note: downstream checks gpu binning for 675 Mhz */
+ gpu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-675000000 {
+ opp-hz = /bits/ 64 <675000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+ };
+
+ opp-585000000 {
+ opp-hz = /bits/ 64 <585000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+ };
+
+ opp-499200000 {
+ opp-hz = /bits/ 64 <499200000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+ };
+
+ opp-427000000 {
+ opp-hz = /bits/ 64 <427000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+ };
+
+ opp-345000000 {
+ opp-hz = /bits/ 64 <345000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+ };
+
+ opp-257000000 {
+ opp-hz = /bits/ 64 <257000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+ };
+ };
+ };
+
+ gmu: gmu@2c6a000 {
+ compatible="qcom,adreno-gmu-640.1", "qcom,adreno-gmu";
+
+ reg = <0 0x2c6a000 0 0x30000>,
+ <0 0xb290000 0 0x10000>,
+ <0 0xb490000 0 0x10000>;
+ reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq";
+
+ interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "hfi", "gmu";
+
+ clocks = <&gpucc GPU_CC_AHB_CLK>,
+ <&gpucc GPU_CC_CX_GMU_CLK>,
+ <&gpucc GPU_CC_CXO_CLK>,
+ <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+ <&gcc GCC_GPU_MEMNOC_GFX_CLK>;
+ clock-names = "ahb", "gmu", "cxo", "axi", "memnoc";
+
+ power-domains = <&gpucc GPU_CX_GDSC>,
+ <&gpucc GPU_GX_GDSC>;
+ power-domain-names = "cx", "gx";
+
+ iommus = <&adreno_smmu 5 0x400>;
+
+ operating-points-v2 = <&gmu_opp_table>;
+
+ gmu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-200000000 {
+ opp-hz = /bits/ 64 <200000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+ };
+ };
+ };
+
+ gpucc: clock-controller@2c90000 {
+ compatible = "qcom,sm8150-gpucc";
+ reg = <0 0x2c90000 0 0x9000>;
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
+ <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+ <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+ clock-names = "bi_tcxo",
+ "gcc_gpu_gpll0_clk_src",
+ "gcc_gpu_gpll0_div_clk_src";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ };
+
+ adreno_smmu: iommu@2ca0000 {
+ compatible = "qcom,sm8150-smmu-500", "arm,mmu-500";
+ reg = <0 0x2ca0000 0 0x10000>;
+ #iommu-cells = <2>;
+ #global-interrupts = <1>;
+ interrupts = <GIC_SPI 674 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 688 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&gpucc GPU_CC_AHB_CLK>,
+ <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+ <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
+ clock-names = "ahb", "bus", "iface";
+
+ power-domains = <&gpucc GPU_CX_GDSC>;
+ };
+
tlmm: pinctrl@3100000 {
compatible = "qcom,sm8150-pinctrl";
reg = <0x0 0x03100000 0x0 0x300000>,
--
2.26.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [RESEND PATCH v2 13/13] arm64: dts: qcom: add sm8250 GPU nodes
2020-06-29 21:17 [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Jonathan Marek
` (3 preceding siblings ...)
2020-06-29 21:17 ` [RESEND PATCH v2 12/13] arm64: dts: qcom: add sm8150 GPU nodes Jonathan Marek
@ 2020-06-29 21:17 ` Jonathan Marek
2020-07-03 15:03 ` [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Dmitry Baryshkov
5 siblings, 0 replies; 17+ messages in thread
From: Jonathan Marek @ 2020-06-29 21:17 UTC (permalink / raw)
To: linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Rob Herring,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list
This brings up the GPU. Tested on HDK865 by running vulkan CTS.
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
---
arch/arm64/boot/dts/qcom/sm8250.dtsi | 143 +++++++++++++++++++++++++++
1 file changed, 143 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index 25224d8cac4e..c9b38dd88f43 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -5,6 +5,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/qcom,gcc-sm8250.h>
+#include <dt-bindings/clock/qcom,gpucc-sm8250.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/power/qcom-rpmpd.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
@@ -387,6 +388,148 @@ tcsr_mutex: hwlock@1f40000 {
#hwlock-cells = <1>;
};
+ gpu: gpu@3d00000 {
+ /*
+ * note: the amd,imageon compatible makes it possible
+ * to use the drm/msm driver without the display node,
+ * make sure to remove it when display node is added
+ */
+ compatible = "qcom,adreno-650.2",
+ "qcom,adreno",
+ "amd,imageon";
+ #stream-id-cells = <16>;
+
+ reg = <0 0x3d00000 0 0x40000>;
+ reg-names = "kgsl_3d0_reg_memory";
+
+ interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+
+ iommus = <&adreno_smmu 0 0x401>;
+
+ operating-points-v2 = <&gpu_opp_table>;
+
+ qcom,gmu = <&gmu>;
+
+ zap-shader {
+ memory-region = <&gpu_mem>;
+ };
+
+ /* note: downstream checks gpu binning for 670 Mhz */
+ gpu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-670000000 {
+ opp-hz = /bits/ 64 <670000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+ };
+
+ opp-587000000 {
+ opp-hz = /bits/ 64 <587000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+ };
+
+ opp-525000000 {
+ opp-hz = /bits/ 64 <525000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+ };
+
+ opp-490000000 {
+ opp-hz = /bits/ 64 <490000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+ };
+
+ opp-441600000 {
+ opp-hz = /bits/ 64 <441600000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+ };
+
+ opp-400000000 {
+ opp-hz = /bits/ 64 <400000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+ };
+
+ opp-305000000 {
+ opp-hz = /bits/ 64 <305000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+ };
+ };
+ };
+
+ gmu: gmu@3d6a000 {
+ compatible="qcom,adreno-gmu-650.2", "qcom,adreno-gmu";
+
+ reg = <0 0x3d6a000 0 0x30000>,
+ <0 0x3de0000 0 0x10000>,
+ <0 0xb290000 0 0x10000>,
+ <0 0xb490000 0 0x10000>;
+ reg-names = "gmu", "rscc", "gmu_pdc", "gmu_pdc_seq";
+
+ interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "hfi", "gmu";
+
+ clocks = <&gpucc GPU_CC_AHB_CLK>,
+ <&gpucc GPU_CC_CX_GMU_CLK>,
+ <&gpucc GPU_CC_CXO_CLK>,
+ <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+ <&gcc GCC_GPU_MEMNOC_GFX_CLK>;
+ clock-names = "ahb", "gmu", "cxo", "axi", "memnoc";
+
+ power-domains = <&gpucc GPU_CX_GDSC>,
+ <&gpucc GPU_GX_GDSC>;
+ power-domain-names = "cx", "gx";
+
+ iommus = <&adreno_smmu 5 0x400>;
+
+ operating-points-v2 = <&gmu_opp_table>;
+
+ gmu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-200000000 {
+ opp-hz = /bits/ 64 <200000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+ };
+ };
+ };
+
+ gpucc: clock-controller@3d90000 {
+ compatible = "qcom,sm8250-gpucc";
+ reg = <0 0x3d90000 0 0x9000>;
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
+ <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+ <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+ clock-names = "bi_tcxo",
+ "gcc_gpu_gpll0_clk_src",
+ "gcc_gpu_gpll0_div_clk_src";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ };
+
+ adreno_smmu: iommu@3da0000 {
+ compatible = "qcom,sm8250-smmu-500", "arm,mmu-500";
+ reg = <0 0x3da0000 0 0x10000>;
+ #iommu-cells = <2>;
+ #global-interrupts = <2>;
+ interrupts = <GIC_SPI 672 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 673 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&gpucc GPU_CC_AHB_CLK>,
+ <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+ <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
+ clock-names = "ahb", "bus", "iface";
+
+ power-domains = <&gpucc GPU_CX_GDSC>;
+ };
+
usb_1_hsphy: phy@88e3000 {
compatible = "qcom,sm8250-usb-hs-phy",
"qcom,usb-snps-hs-7nm-phy";
--
2.26.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings
2020-06-29 21:17 ` [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings Jonathan Marek
@ 2020-07-02 20:43 ` Rob Herring
2020-07-02 20:44 ` Rob Herring
1 sibling, 0 replies; 17+ messages in thread
From: Rob Herring @ 2020-07-02 20:43 UTC (permalink / raw)
To: Jonathan Marek
Cc: Michael Turquette, linux-kernel, Andy Gross, linux-arm-msm,
Rob Herring, linux-clk, devicetree, Stephen Boyd, Bjorn Andersson
On Mon, 29 Jun 2020 17:17:12 -0400, Jonathan Marek wrote:
> Add device tree bindings for graphics clock controller for
> Qualcomm Technology Inc's SM8150 SoCs.
>
> Signed-off-by: Jonathan Marek <jonathan@marek.ca>
> ---
> .../bindings/clock/qcom,sm8150-gpucc.yaml | 74 +++++++++++++++++++
> include/dt-bindings/clock/qcom,gpucc-sm8150.h | 40 ++++++++++
> 2 files changed, 114 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
> create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8150.h
>
My bot found errors running 'make dt_binding_check' on your patch:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml: maintainers:0: None is not of type 'string'
Documentation/devicetree/bindings/Makefile:20: recipe for target 'Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.example.dts' failed
make[1]: *** [Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.example.dts] Error 1
make[1]: *** Waiting for unfinished jobs....
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml: ignoring, error in schema: maintainers: 0
warning: no schema found in file: ./Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml: ignoring, error in schema: maintainers: 0
warning: no schema found in file: ./Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
Makefile:1347: recipe for target 'dt_binding_check' failed
make: *** [dt_binding_check] Error 2
See https://patchwork.ozlabs.org/patch/1319320
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure dt-schema is up to date:
pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --upgrade
Please check and re-submit.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings
2020-06-29 21:17 ` [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings Jonathan Marek
2020-07-02 20:43 ` Rob Herring
@ 2020-07-02 20:44 ` Rob Herring
1 sibling, 0 replies; 17+ messages in thread
From: Rob Herring @ 2020-07-02 20:44 UTC (permalink / raw)
To: Jonathan Marek
Cc: linux-arm-msm, Andy Gross, Bjorn Andersson, Michael Turquette,
Stephen Boyd, open list:COMMON CLK FRAMEWORK,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list
On Mon, Jun 29, 2020 at 05:17:12PM -0400, Jonathan Marek wrote:
> Add device tree bindings for graphics clock controller for
> Qualcomm Technology Inc's SM8150 SoCs.
>
> Signed-off-by: Jonathan Marek <jonathan@marek.ca>
> ---
> .../bindings/clock/qcom,sm8150-gpucc.yaml | 74 +++++++++++++++++++
> include/dt-bindings/clock/qcom,gpucc-sm8150.h | 40 ++++++++++
> 2 files changed, 114 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
> create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8150.h
>
> diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
> new file mode 100644
> index 000000000000..683b50dd3492
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/qcom,sm8150-gpucc.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: GPL-2.0-only
Dual license new bindings.
(GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/qcom,sm8150-gpucc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Graphics Clock & Reset Controller Binding for SM8150
> +
> +maintainers:
> + -
Got to pick someone.
> +
> +description: |
> + Qualcomm graphics clock control module which supports the clocks, resets and
> + power domains on SM8150.
> +
> + See also dt-bindings/clock/qcom,gpucc-sm8150.h.
> +
> +properties:
> + compatible:
> + const: qcom,sm8150-gpucc
> +
> + clocks:
> + items:
> + - description: Board XO source
> + - description: GPLL0 main branch source
> + - description: GPLL0 div branch source
> +
> + clock-names:
> + items:
> + - const: bi_tcxo
> + - const: gcc_gpu_gpll0_clk_src
> + - const: gcc_gpu_gpll0_div_clk_src
> +
> + '#clock-cells':
> + const: 1
> +
> + '#reset-cells':
> + const: 1
> +
> + '#power-domain-cells':
> + const: 1
> +
> + reg:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - clock-names
> + - '#clock-cells'
> + - '#reset-cells'
> + - '#power-domain-cells'
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,gcc-sm8150.h>
> + #include <dt-bindings/clock/qcom,rpmh.h>
> + clock-controller@2c90000 {
> + compatible = "qcom,sm8150-gpucc";
> + reg = <0x2c90000 0x9000>;
> + clocks = <&rpmhcc RPMH_CXO_CLK>,
> + <&gcc GCC_GPU_GPLL0_CLK_SRC>,
> + <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
> + clock-names = "bi_tcxo",
> + "gcc_gpu_gpll0_clk_src",
> + "gcc_gpu_gpll0_div_clk_src";
> + #clock-cells = <1>;
> + #reset-cells = <1>;
> + #power-domain-cells = <1>;
> + };
> +...
> diff --git a/include/dt-bindings/clock/qcom,gpucc-sm8150.h b/include/dt-bindings/clock/qcom,gpucc-sm8150.h
> new file mode 100644
> index 000000000000..e7cac7fe9739
> --- /dev/null
> +++ b/include/dt-bindings/clock/qcom,gpucc-sm8150.h
> @@ -0,0 +1,40 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
> + */
> +
> +#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8150_H
> +#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8150_H
> +
> +/* GPU_CC clock registers */
> +#define GPU_CC_AHB_CLK 0
> +#define GPU_CC_CRC_AHB_CLK 1
> +#define GPU_CC_CX_APB_CLK 2
> +#define GPU_CC_CX_GMU_CLK 3
> +#define GPU_CC_CX_QDSS_AT_CLK 4
> +#define GPU_CC_CX_QDSS_TRIG_CLK 5
> +#define GPU_CC_CX_QDSS_TSCTR_CLK 6
> +#define GPU_CC_CX_SNOC_DVM_CLK 7
> +#define GPU_CC_CXO_AON_CLK 8
> +#define GPU_CC_CXO_CLK 9
> +#define GPU_CC_GMU_CLK_SRC 10
> +#define GPU_CC_GX_GMU_CLK 11
> +#define GPU_CC_GX_QDSS_TSCTR_CLK 12
> +#define GPU_CC_GX_VSENSE_CLK 13
> +#define GPU_CC_PLL1 14
> +#define GPU_CC_PLL_TEST_CLK 15
> +#define GPU_CC_SLEEP_CLK 16
> +
> +/* GPU_CC Resets */
> +#define GPUCC_GPU_CC_CX_BCR 0
> +#define GPUCC_GPU_CC_GFX3D_AON_BCR 1
> +#define GPUCC_GPU_CC_GMU_BCR 2
> +#define GPUCC_GPU_CC_GX_BCR 3
> +#define GPUCC_GPU_CC_SPDM_BCR 4
> +#define GPUCC_GPU_CC_XO_BCR 5
> +
> +/* GPU_CC GDSCRs */
> +#define GPU_CX_GDSC 0
> +#define GPU_GX_GDSC 1
> +
> +#endif
> --
> 2.26.1
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 07/13] dt-bindings: clock: Introduce SM8250 QCOM Graphics clock bindings
2020-06-29 21:17 ` [RESEND PATCH v2 07/13] dt-bindings: clock: Introduce SM8250 " Jonathan Marek
@ 2020-07-02 20:46 ` Rob Herring
2020-07-02 20:49 ` Jonathan Marek
0 siblings, 1 reply; 17+ messages in thread
From: Rob Herring @ 2020-07-02 20:46 UTC (permalink / raw)
To: Jonathan Marek
Cc: linux-arm-msm, Andy Gross, Bjorn Andersson, Michael Turquette,
Stephen Boyd, open list:COMMON CLK FRAMEWORK,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list
On Mon, Jun 29, 2020 at 05:17:13PM -0400, Jonathan Marek wrote:
> Add device tree bindings for graphics clock controller for
> Qualcomm Technology Inc's SM8250 SoCs.
>
Looks like these 2 schemas could be a single one.
> Signed-off-by: Jonathan Marek <jonathan@marek.ca>
> ---
> .../bindings/clock/qcom,sm8250-gpucc.yaml | 74 +++++++++++++++++++
> include/dt-bindings/clock/qcom,gpucc-sm8250.h | 40 ++++++++++
> 2 files changed, 114 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
> create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8250.h
>
> diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
> new file mode 100644
> index 000000000000..2b9c8f97b76d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/qcom,sm8250-gpucc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Graphics Clock & Reset Controller Binding for SM8250
> +
> +maintainers:
> + -
> +
> +description: |
> + Qualcomm graphics clock control module which supports the clocks, resets and
> + power domains on SM8250.
> +
> + See also dt-bindings/clock/qcom,gpucc-sm8250.h.
> +
> +properties:
> + compatible:
> + const: qcom,sm8250-gpucc
> +
> + clocks:
> + items:
> + - description: Board XO source
> + - description: GPLL0 main branch source
> + - description: GPLL0 div branch source
> +
> + clock-names:
> + items:
> + - const: bi_tcxo
> + - const: gcc_gpu_gpll0_clk_src
> + - const: gcc_gpu_gpll0_div_clk_src
> +
> + '#clock-cells':
> + const: 1
> +
> + '#reset-cells':
> + const: 1
> +
> + '#power-domain-cells':
> + const: 1
> +
> + reg:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - clock-names
> + - '#clock-cells'
> + - '#reset-cells'
> + - '#power-domain-cells'
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,gcc-sm8250.h>
> + #include <dt-bindings/clock/qcom,rpmh.h>
> + clock-controller@3d90000 {
> + compatible = "qcom,sm8250-gpucc";
> + reg = <0x3d90000 0x9000>;
> + clocks = <&rpmhcc RPMH_CXO_CLK>,
> + <&gcc GCC_GPU_GPLL0_CLK_SRC>,
> + <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
> + clock-names = "bi_tcxo",
> + "gcc_gpu_gpll0_clk_src",
> + "gcc_gpu_gpll0_div_clk_src";
> + #clock-cells = <1>;
> + #reset-cells = <1>;
> + #power-domain-cells = <1>;
> + };
> +...
> diff --git a/include/dt-bindings/clock/qcom,gpucc-sm8250.h b/include/dt-bindings/clock/qcom,gpucc-sm8250.h
> new file mode 100644
> index 000000000000..c8fe64e399fd
> --- /dev/null
> +++ b/include/dt-bindings/clock/qcom,gpucc-sm8250.h
> @@ -0,0 +1,40 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
> + */
> +
> +#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8250_H
> +#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8250_H
> +
> +/* GPU_CC clock registers */
> +#define GPU_CC_AHB_CLK 0
> +#define GPU_CC_CRC_AHB_CLK 1
> +#define GPU_CC_CX_APB_CLK 2
> +#define GPU_CC_CX_GMU_CLK 3
> +#define GPU_CC_CX_QDSS_AT_CLK 4
> +#define GPU_CC_CX_QDSS_TRIG_CLK 5
> +#define GPU_CC_CX_QDSS_TSCTR_CLK 6
> +#define GPU_CC_CX_SNOC_DVM_CLK 7
> +#define GPU_CC_CXO_AON_CLK 8
> +#define GPU_CC_CXO_CLK 9
> +#define GPU_CC_GMU_CLK_SRC 10
> +#define GPU_CC_GX_GMU_CLK 11
> +#define GPU_CC_GX_QDSS_TSCTR_CLK 12
> +#define GPU_CC_GX_VSENSE_CLK 13
> +#define GPU_CC_PLL1 14
> +#define GPU_CC_SLEEP_CLK 15
> +#define GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK 16
> +
> +/* GPU_CC Resets */
> +#define GPUCC_GPU_CC_ACD_BCR 0
> +#define GPUCC_GPU_CC_CX_BCR 1
> +#define GPUCC_GPU_CC_GFX3D_AON_BCR 2
> +#define GPUCC_GPU_CC_GMU_BCR 3
> +#define GPUCC_GPU_CC_GX_BCR 4
> +#define GPUCC_GPU_CC_XO_BCR 5
> +
> +/* GPU_CC GDSCRs */
> +#define GPU_CX_GDSC 0
> +#define GPU_GX_GDSC 1
> +
> +#endif
> --
> 2.26.1
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 07/13] dt-bindings: clock: Introduce SM8250 QCOM Graphics clock bindings
2020-07-02 20:46 ` Rob Herring
@ 2020-07-02 20:49 ` Jonathan Marek
0 siblings, 0 replies; 17+ messages in thread
From: Jonathan Marek @ 2020-07-02 20:49 UTC (permalink / raw)
To: Rob Herring
Cc: linux-arm-msm, Andy Gross, Bjorn Andersson, Michael Turquette,
Stephen Boyd, open list:COMMON CLK FRAMEWORK,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list
On 7/2/20 4:46 PM, Rob Herring wrote:
> On Mon, Jun 29, 2020 at 05:17:13PM -0400, Jonathan Marek wrote:
>> Add device tree bindings for graphics clock controller for
>> Qualcomm Technology Inc's SM8250 SoCs.
>>
>
> Looks like these 2 schemas could be a single one.
>
I agree, but there are already separate schemas for sdm845 and sc7180
gpucc (which these are a copy paste of), so should those be removed and
use the single one too?
>> Signed-off-by: Jonathan Marek <jonathan@marek.ca>
>> ---
>> .../bindings/clock/qcom,sm8250-gpucc.yaml | 74 +++++++++++++++++++
>> include/dt-bindings/clock/qcom,gpucc-sm8250.h | 40 ++++++++++
>> 2 files changed, 114 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
>> create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8250.h
>>
>> diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
>> new file mode 100644
>> index 000000000000..2b9c8f97b76d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/clock/qcom,sm8250-gpucc.yaml
>> @@ -0,0 +1,74 @@
>> +# SPDX-License-Identifier: GPL-2.0-only
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/clock/qcom,sm8250-gpucc.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm Graphics Clock & Reset Controller Binding for SM8250
>> +
>> +maintainers:
>> + -
>> +
>> +description: |
>> + Qualcomm graphics clock control module which supports the clocks, resets and
>> + power domains on SM8250.
>> +
>> + See also dt-bindings/clock/qcom,gpucc-sm8250.h.
>> +
>> +properties:
>> + compatible:
>> + const: qcom,sm8250-gpucc
>> +
>> + clocks:
>> + items:
>> + - description: Board XO source
>> + - description: GPLL0 main branch source
>> + - description: GPLL0 div branch source
>> +
>> + clock-names:
>> + items:
>> + - const: bi_tcxo
>> + - const: gcc_gpu_gpll0_clk_src
>> + - const: gcc_gpu_gpll0_div_clk_src
>> +
>> + '#clock-cells':
>> + const: 1
>> +
>> + '#reset-cells':
>> + const: 1
>> +
>> + '#power-domain-cells':
>> + const: 1
>> +
>> + reg:
>> + maxItems: 1
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - clocks
>> + - clock-names
>> + - '#clock-cells'
>> + - '#reset-cells'
>> + - '#power-domain-cells'
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/qcom,gcc-sm8250.h>
>> + #include <dt-bindings/clock/qcom,rpmh.h>
>> + clock-controller@3d90000 {
>> + compatible = "qcom,sm8250-gpucc";
>> + reg = <0x3d90000 0x9000>;
>> + clocks = <&rpmhcc RPMH_CXO_CLK>,
>> + <&gcc GCC_GPU_GPLL0_CLK_SRC>,
>> + <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
>> + clock-names = "bi_tcxo",
>> + "gcc_gpu_gpll0_clk_src",
>> + "gcc_gpu_gpll0_div_clk_src";
>> + #clock-cells = <1>;
>> + #reset-cells = <1>;
>> + #power-domain-cells = <1>;
>> + };
>> +...
>> diff --git a/include/dt-bindings/clock/qcom,gpucc-sm8250.h b/include/dt-bindings/clock/qcom,gpucc-sm8250.h
>> new file mode 100644
>> index 000000000000..c8fe64e399fd
>> --- /dev/null
>> +++ b/include/dt-bindings/clock/qcom,gpucc-sm8250.h
>> @@ -0,0 +1,40 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +/*
>> + * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
>> + */
>> +
>> +#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8250_H
>> +#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM8250_H
>> +
>> +/* GPU_CC clock registers */
>> +#define GPU_CC_AHB_CLK 0
>> +#define GPU_CC_CRC_AHB_CLK 1
>> +#define GPU_CC_CX_APB_CLK 2
>> +#define GPU_CC_CX_GMU_CLK 3
>> +#define GPU_CC_CX_QDSS_AT_CLK 4
>> +#define GPU_CC_CX_QDSS_TRIG_CLK 5
>> +#define GPU_CC_CX_QDSS_TSCTR_CLK 6
>> +#define GPU_CC_CX_SNOC_DVM_CLK 7
>> +#define GPU_CC_CXO_AON_CLK 8
>> +#define GPU_CC_CXO_CLK 9
>> +#define GPU_CC_GMU_CLK_SRC 10
>> +#define GPU_CC_GX_GMU_CLK 11
>> +#define GPU_CC_GX_QDSS_TSCTR_CLK 12
>> +#define GPU_CC_GX_VSENSE_CLK 13
>> +#define GPU_CC_PLL1 14
>> +#define GPU_CC_SLEEP_CLK 15
>> +#define GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK 16
>> +
>> +/* GPU_CC Resets */
>> +#define GPUCC_GPU_CC_ACD_BCR 0
>> +#define GPUCC_GPU_CC_CX_BCR 1
>> +#define GPUCC_GPU_CC_GFX3D_AON_BCR 2
>> +#define GPUCC_GPU_CC_GMU_BCR 3
>> +#define GPUCC_GPU_CC_GX_BCR 4
>> +#define GPUCC_GPU_CC_XO_BCR 5
>> +
>> +/* GPU_CC GDSCRs */
>> +#define GPU_CX_GDSC 0
>> +#define GPU_GX_GDSC 1
>> +
>> +#endif
>> --
>> 2.26.1
>>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250
2020-06-29 21:17 [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Jonathan Marek
` (4 preceding siblings ...)
2020-06-29 21:17 ` [RESEND PATCH v2 13/13] arm64: dts: qcom: add sm8250 " Jonathan Marek
@ 2020-07-03 15:03 ` Dmitry Baryshkov
2020-07-03 15:08 ` Jonathan Marek
2020-07-06 19:50 ` Dmitry Baryshkov
5 siblings, 2 replies; 17+ messages in thread
From: Dmitry Baryshkov @ 2020-07-03 15:03 UTC (permalink / raw)
To: Jonathan Marek, linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Deepak Katragadda,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:COMMON CLK FRAMEWORK, open list, Michael Turquette,
Rob Herring, Stephen Boyd, Taniya Das, Vinod Koul
On 30/06/2020 00:17, Jonathan Marek wrote:
> This series adds the missing clock drivers and dts nodes to enable
> the GPU on both SM8150 and SM8250.
>
> Note an extra patch [1] is still required for GPU to work on SM8250.
>
> Changes in V2:
> * Added "clk: qcom: gcc: fix sm8150 GPU and NPU clocks" to fix the newly added
> SM8150 GPU gcc clocks
> * Added "Fixes:" tag to "clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL"
> * Added yaml schemas to gpucc dt-bindings patches
> * Added "clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc drivers" and changed
> gpucc patches to use it.
> * Removed CLK_IS_CRITICAL from gpu_cc_ahb_clk
> * Added missing rpmh regulator level for sm8250 GPU clock levels
> * Use sm8150/sm8250 iommu compatibles in dts
> * Add gcc_gpu_gpll0_clk_src/gcc_gpu_gpll0_div_clk_src to gpucc clocks in dts
>
> [1] https://gist.github.com/flto/784f1aca761ebf2fe6c105719a4a04ca
With your patches applied:
[ 56.751977] msm msm: [drm:adreno_request_fw] loaded qcom/a650_sqe.fw
from new location
[ 56.760166] msm msm: [drm:adreno_request_fw] loaded qcom/a650_gmu.bin
from new location
[ 56.768485] arm-smmu 3da0000.iommu: genpd_runtime_resume()
[ 56.774196] PM: gpu_cx_gdsc: Power-on latency exceeded, new value
49531 ns
[ 56.781730] arm-smmu 3da0000.iommu: resume latency exceeded, 462604 ns
[ 56.799559] platform 3d6a000.gmu: [drm:a6xx_gmu_resume] *ERROR* GMU
firmware initialization timed out
[ 56.809260] arm-smmu 3da0000.iommu: genpd_runtime_suspend()
[ 56.813062] msm msm: [drm:adreno_load_gpu] *ERROR* Couldn't power up
the GPU: -110
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250
2020-07-03 15:03 ` [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Dmitry Baryshkov
@ 2020-07-03 15:08 ` Jonathan Marek
2020-07-03 15:14 ` Dmitry Baryshkov
2020-07-06 19:50 ` Dmitry Baryshkov
1 sibling, 1 reply; 17+ messages in thread
From: Jonathan Marek @ 2020-07-03 15:08 UTC (permalink / raw)
To: Dmitry Baryshkov, linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Deepak Katragadda,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:COMMON CLK FRAMEWORK, open list, Michael Turquette,
Rob Herring, Stephen Boyd, Taniya Das, Vinod Koul
On 7/3/20 11:03 AM, Dmitry Baryshkov wrote:
> On 30/06/2020 00:17, Jonathan Marek wrote:
>> This series adds the missing clock drivers and dts nodes to enable
>> the GPU on both SM8150 and SM8250.
>>
>> Note an extra patch [1] is still required for GPU to work on SM8250.
>>
>> Changes in V2:
>> * Added "clk: qcom: gcc: fix sm8150 GPU and NPU clocks" to fix the
>> newly added
>> SM8150 GPU gcc clocks
>> * Added "Fixes:" tag to "clk: qcom: clk-alpha-pll: remove
>> unused/incorrect PLL_CAL_VAL"
>> * Added yaml schemas to gpucc dt-bindings patches
>> * Added "clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc
>> drivers" and changed
>> gpucc patches to use it.
>> * Removed CLK_IS_CRITICAL from gpu_cc_ahb_clk
>> * Added missing rpmh regulator level for sm8250 GPU clock levels
>> * Use sm8150/sm8250 iommu compatibles in dts
>> * Add gcc_gpu_gpll0_clk_src/gcc_gpu_gpll0_div_clk_src to gpucc clocks
>> in dts
>>
>> [1] https://gist.github.com/flto/784f1aca761ebf2fe6c105719a4a04ca
>
> With your patches applied:
>
> [ 56.751977] msm msm: [drm:adreno_request_fw] loaded qcom/a650_sqe.fw
> from new location
> [ 56.760166] msm msm: [drm:adreno_request_fw] loaded qcom/a650_gmu.bin
> from new location
> [ 56.768485] arm-smmu 3da0000.iommu: genpd_runtime_resume()
> [ 56.774196] PM: gpu_cx_gdsc: Power-on latency exceeded, new value
> 49531 ns
> [ 56.781730] arm-smmu 3da0000.iommu: resume latency exceeded, 462604 ns
> [ 56.799559] platform 3d6a000.gmu: [drm:a6xx_gmu_resume] *ERROR* GMU
> firmware initialization timed out
> [ 56.809260] arm-smmu 3da0000.iommu: genpd_runtime_suspend()
> [ 56.813062] msm msm: [drm:adreno_load_gpu] *ERROR* Couldn't power up
> the GPU: -110
>
>
Do you have your branch published somewhere so I can see what could've
went wrong?
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250
2020-07-03 15:08 ` Jonathan Marek
@ 2020-07-03 15:14 ` Dmitry Baryshkov
2020-07-03 17:29 ` Dmitry Baryshkov
0 siblings, 1 reply; 17+ messages in thread
From: Dmitry Baryshkov @ 2020-07-03 15:14 UTC (permalink / raw)
To: Jonathan Marek, linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Deepak Katragadda,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:COMMON CLK FRAMEWORK, open list, Michael Turquette,
Rob Herring, Stephen Boyd, Taniya Das, Vinod Koul
On 03/07/2020 18:08, Jonathan Marek wrote:
> On 7/3/20 11:03 AM, Dmitry Baryshkov wrote:
>> On 30/06/2020 00:17, Jonathan Marek wrote:
>>> This series adds the missing clock drivers and dts nodes to enable
>>> the GPU on both SM8150 and SM8250.
>>>
>>> Note an extra patch [1] is still required for GPU to work on SM8250.
>>>
>>> Changes in V2:
>>> * Added "clk: qcom: gcc: fix sm8150 GPU and NPU clocks" to fix the
>>> newly added
>>> SM8150 GPU gcc clocks
>>> * Added "Fixes:" tag to "clk: qcom: clk-alpha-pll: remove
>>> unused/incorrect PLL_CAL_VAL"
>>> * Added yaml schemas to gpucc dt-bindings patches
>>> * Added "clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc
>>> drivers" and changed
>>> gpucc patches to use it.
>>> * Removed CLK_IS_CRITICAL from gpu_cc_ahb_clk
>>> * Added missing rpmh regulator level for sm8250 GPU clock levels
>>> * Use sm8150/sm8250 iommu compatibles in dts
>>> * Add gcc_gpu_gpll0_clk_src/gcc_gpu_gpll0_div_clk_src to gpucc clocks
>>> in dts
>>>
>>> [1] https://gist.github.com/flto/784f1aca761ebf2fe6c105719a4a04ca
>>
>> With your patches applied:
>>
>> [ 56.751977] msm msm: [drm:adreno_request_fw] loaded
>> qcom/a650_sqe.fw from new location
>> [ 56.760166] msm msm: [drm:adreno_request_fw] loaded
>> qcom/a650_gmu.bin from new location
>> [ 56.768485] arm-smmu 3da0000.iommu: genpd_runtime_resume()
>> [ 56.774196] PM: gpu_cx_gdsc: Power-on latency exceeded, new value
>> 49531 ns
>> [ 56.781730] arm-smmu 3da0000.iommu: resume latency exceeded, 462604 ns
>> [ 56.799559] platform 3d6a000.gmu: [drm:a6xx_gmu_resume] *ERROR* GMU
>> firmware initialization timed out
>> [ 56.809260] arm-smmu 3da0000.iommu: genpd_runtime_suspend()
>> [ 56.813062] msm msm: [drm:adreno_load_gpu] *ERROR* Couldn't power
>> up the GPU: -110
>>
>>
>
> Do you have your branch published somewhere so I can see what could've
> went wrong?
I've applied your patches (this series + the extra one for gpu/drm/msm)
on top of
https://git.linaro.org/landing-teams/working/qualcomm/kernel.git branch
integration-linux-qcomlt .
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250
2020-07-03 15:14 ` Dmitry Baryshkov
@ 2020-07-03 17:29 ` Dmitry Baryshkov
2020-07-05 21:08 ` Jonathan Marek
0 siblings, 1 reply; 17+ messages in thread
From: Dmitry Baryshkov @ 2020-07-03 17:29 UTC (permalink / raw)
To: Jonathan Marek, linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Deepak Katragadda,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:COMMON CLK FRAMEWORK, open list, Michael Turquette,
Rob Herring, Stephen Boyd, Taniya Das, Vinod Koul
On 03/07/2020 18:14, Dmitry Baryshkov wrote:
> On 03/07/2020 18:08, Jonathan Marek wrote:
>> On 7/3/20 11:03 AM, Dmitry Baryshkov wrote:
>>> On 30/06/2020 00:17, Jonathan Marek wrote:
>>>> This series adds the missing clock drivers and dts nodes to enable
>>>> the GPU on both SM8150 and SM8250.
>>>>
>>>> Note an extra patch [1] is still required for GPU to work on SM8250.
>>>>
>>>> Changes in V2:
>>>> * Added "clk: qcom: gcc: fix sm8150 GPU and NPU clocks" to fix the
>>>> newly added
>>>> SM8150 GPU gcc clocks
>>>> * Added "Fixes:" tag to "clk: qcom: clk-alpha-pll: remove
>>>> unused/incorrect PLL_CAL_VAL"
>>>> * Added yaml schemas to gpucc dt-bindings patches
>>>> * Added "clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc
>>>> drivers" and changed
>>>> gpucc patches to use it.
>>>> * Removed CLK_IS_CRITICAL from gpu_cc_ahb_clk
>>>> * Added missing rpmh regulator level for sm8250 GPU clock levels
>>>> * Use sm8150/sm8250 iommu compatibles in dts
>>>> * Add gcc_gpu_gpll0_clk_src/gcc_gpu_gpll0_div_clk_src to gpucc
>>>> clocks in dts
>>>>
>>>> [1] https://gist.github.com/flto/784f1aca761ebf2fe6c105719a4a04ca
>>>
>>> With your patches applied:
>>>
>>> [ 56.751977] msm msm: [drm:adreno_request_fw] loaded
>>> qcom/a650_sqe.fw from new location
>>> [ 56.760166] msm msm: [drm:adreno_request_fw] loaded
>>> qcom/a650_gmu.bin from new location
>>> [ 56.768485] arm-smmu 3da0000.iommu: genpd_runtime_resume()
>>> [ 56.774196] PM: gpu_cx_gdsc: Power-on latency exceeded, new value
>>> 49531 ns
>>> [ 56.781730] arm-smmu 3da0000.iommu: resume latency exceeded,
>>> 462604 ns
>>> [ 56.799559] platform 3d6a000.gmu: [drm:a6xx_gmu_resume] *ERROR*
>>> GMU firmware initialization timed out
>>> [ 56.809260] arm-smmu 3da0000.iommu: genpd_runtime_suspend()
>>> [ 56.813062] msm msm: [drm:adreno_load_gpu] *ERROR* Couldn't power
>>> up the GPU: -110
>>>
>>>
>>
>> Do you have your branch published somewhere so I can see what could've
>> went wrong?
>
> I've applied your patches (this series + the extra one for gpu/drm/msm)
> on top of
> https://git.linaro.org/landing-teams/working/qualcomm/kernel.git branch
> integration-linux-qcomlt .
A trimmed down version:
git.linaro.org/people/dmitry.baryshkov/kernel.git branch sm8250-gpu-test
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250
2020-07-03 17:29 ` Dmitry Baryshkov
@ 2020-07-05 21:08 ` Jonathan Marek
2020-07-06 10:28 ` Dmitry Baryshkov
0 siblings, 1 reply; 17+ messages in thread
From: Jonathan Marek @ 2020-07-05 21:08 UTC (permalink / raw)
To: Dmitry Baryshkov, linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Deepak Katragadda,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:COMMON CLK FRAMEWORK, open list, Michael Turquette,
Rob Herring, Stephen Boyd, Taniya Das, Vinod Koul
On 7/3/20 1:29 PM, Dmitry Baryshkov wrote:
> On 03/07/2020 18:14, Dmitry Baryshkov wrote:
>> On 03/07/2020 18:08, Jonathan Marek wrote:
>>> On 7/3/20 11:03 AM, Dmitry Baryshkov wrote:
>>>> On 30/06/2020 00:17, Jonathan Marek wrote:
>>>>> This series adds the missing clock drivers and dts nodes to enable
>>>>> the GPU on both SM8150 and SM8250.
>>>>>
>>>>> Note an extra patch [1] is still required for GPU to work on SM8250.
>>>>>
>>>>> Changes in V2:
>>>>> * Added "clk: qcom: gcc: fix sm8150 GPU and NPU clocks" to fix the
>>>>> newly added
>>>>> SM8150 GPU gcc clocks
>>>>> * Added "Fixes:" tag to "clk: qcom: clk-alpha-pll: remove
>>>>> unused/incorrect PLL_CAL_VAL"
>>>>> * Added yaml schemas to gpucc dt-bindings patches
>>>>> * Added "clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc
>>>>> drivers" and changed
>>>>> gpucc patches to use it.
>>>>> * Removed CLK_IS_CRITICAL from gpu_cc_ahb_clk
>>>>> * Added missing rpmh regulator level for sm8250 GPU clock levels
>>>>> * Use sm8150/sm8250 iommu compatibles in dts
>>>>> * Add gcc_gpu_gpll0_clk_src/gcc_gpu_gpll0_div_clk_src to gpucc
>>>>> clocks in dts
>>>>>
>>>>> [1] https://gist.github.com/flto/784f1aca761ebf2fe6c105719a4a04ca
>>>>
>>>> With your patches applied:
>>>>
>>>> [ 56.751977] msm msm: [drm:adreno_request_fw] loaded
>>>> qcom/a650_sqe.fw from new location
>>>> [ 56.760166] msm msm: [drm:adreno_request_fw] loaded
>>>> qcom/a650_gmu.bin from new location
>>>> [ 56.768485] arm-smmu 3da0000.iommu: genpd_runtime_resume()
>>>> [ 56.774196] PM: gpu_cx_gdsc: Power-on latency exceeded, new value
>>>> 49531 ns
>>>> [ 56.781730] arm-smmu 3da0000.iommu: resume latency exceeded,
>>>> 462604 ns
>>>> [ 56.799559] platform 3d6a000.gmu: [drm:a6xx_gmu_resume] *ERROR*
>>>> GMU firmware initialization timed out
>>>> [ 56.809260] arm-smmu 3da0000.iommu: genpd_runtime_suspend()
>>>> [ 56.813062] msm msm: [drm:adreno_load_gpu] *ERROR* Couldn't power
>>>> up the GPU: -110
>>>>
>>>>
>>>
>>> Do you have your branch published somewhere so I can see what
>>> could've went wrong?
>>
>> I've applied your patches (this series + the extra one for
>> gpu/drm/msm) on top of
>> https://git.linaro.org/landing-teams/working/qualcomm/kernel.git
>> branch integration-linux-qcomlt .
>
> A trimmed down version:
> git.linaro.org/people/dmitry.baryshkov/kernel.git branch sm8250-gpu-test
>
>
Hi,
I tried this branch, with only the sm8250-hdk.dts from my other series
added (USB nodes removed as you don't have those in your branch), and
the GPU starts up without problems.
Possible differences I can think of:
1) Different firmware version which behaves differently? These are the
checksums for the firmware I have:
/lib/firmware# md5sum a650_*
f6536ba45c2f9f64ec31438217b6a027 a650_gmu.bin
897be740bed67deaa1943e9c36293165 a650_sqe.fw
00f1b291a2b30c98f05c25506e3f4761 a650_zap.b00
bec0f79c7c6f5b32254facf3c7e046c7 a650_zap.b01
35273e4135147a269076144a3051b498 a650_zap.b02
ce0dd1af27306eb341a01bda642f1c64 a650_zap.elf
09834955a8865073f6ee483f69a98b33 a650_zap.mdt
2) GPU revision is not 650.2 (the downstream driver had workarounds for
bugs in the first revisions, which I didn't include in the upstream driver)
3) Something in the kernel config is making a difference. Here is the
kernel config I used to test this:
https://gist.github.com/flto/c6b1bc48abda6fb580a2f21c51039c81
-Jonathan
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250
2020-07-05 21:08 ` Jonathan Marek
@ 2020-07-06 10:28 ` Dmitry Baryshkov
0 siblings, 0 replies; 17+ messages in thread
From: Dmitry Baryshkov @ 2020-07-06 10:28 UTC (permalink / raw)
To: Jonathan Marek, linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Deepak Katragadda,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:COMMON CLK FRAMEWORK, open list, Michael Turquette,
Rob Herring, Stephen Boyd, Taniya Das, Vinod Koul
Hi,
On 06/07/2020 00:08, Jonathan Marek wrote:
> On 7/3/20 1:29 PM, Dmitry Baryshkov wrote:
>> On 03/07/2020 18:14, Dmitry Baryshkov wrote:
>>> On 03/07/2020 18:08, Jonathan Marek wrote:
>>>> On 7/3/20 11:03 AM, Dmitry Baryshkov wrote:
>>>>> On 30/06/2020 00:17, Jonathan Marek wrote:
>>>>>> This series adds the missing clock drivers and dts nodes to enable
>>>>>> the GPU on both SM8150 and SM8250.
>>>>>>
>>>>>> Note an extra patch [1] is still required for GPU to work on SM8250.
>>>>>>
>>>>>> Changes in V2:
>>>>>> * Added "clk: qcom: gcc: fix sm8150 GPU and NPU clocks" to fix the
>>>>>> newly added
>>>>>> SM8150 GPU gcc clocks
>>>>>> * Added "Fixes:" tag to "clk: qcom: clk-alpha-pll: remove
>>>>>> unused/incorrect PLL_CAL_VAL"
>>>>>> * Added yaml schemas to gpucc dt-bindings patches
>>>>>> * Added "clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc
>>>>>> drivers" and changed
>>>>>> gpucc patches to use it.
>>>>>> * Removed CLK_IS_CRITICAL from gpu_cc_ahb_clk
>>>>>> * Added missing rpmh regulator level for sm8250 GPU clock levels
>>>>>> * Use sm8150/sm8250 iommu compatibles in dts
>>>>>> * Add gcc_gpu_gpll0_clk_src/gcc_gpu_gpll0_div_clk_src to gpucc
>>>>>> clocks in dts
>>>>>>
>>>>>> [1] https://gist.github.com/flto/784f1aca761ebf2fe6c105719a4a04ca
>>>>>
>>>>> With your patches applied:
>>>>>
>>>>> [ 56.751977] msm msm: [drm:adreno_request_fw] loaded
>>>>> qcom/a650_sqe.fw from new location
>>>>> [ 56.760166] msm msm: [drm:adreno_request_fw] loaded
>>>>> qcom/a650_gmu.bin from new location
>>>>> [ 56.768485] arm-smmu 3da0000.iommu: genpd_runtime_resume()
>>>>> [ 56.774196] PM: gpu_cx_gdsc: Power-on latency exceeded, new
>>>>> value 49531 ns
>>>>> [ 56.781730] arm-smmu 3da0000.iommu: resume latency exceeded,
>>>>> 462604 ns
>>>>> [ 56.799559] platform 3d6a000.gmu: [drm:a6xx_gmu_resume] *ERROR*
>>>>> GMU firmware initialization timed out
>>>>> [ 56.809260] arm-smmu 3da0000.iommu: genpd_runtime_suspend()
>>>>> [ 56.813062] msm msm: [drm:adreno_load_gpu] *ERROR* Couldn't
>>>>> power up the GPU: -110
>>>>>
>>>>>
>>>>
>>>> Do you have your branch published somewhere so I can see what
>>>> could've went wrong?
>>>
>>> I've applied your patches (this series + the extra one for
>>> gpu/drm/msm) on top of
>>> https://git.linaro.org/landing-teams/working/qualcomm/kernel.git
>>> branch integration-linux-qcomlt .
>>
>> A trimmed down version:
>> git.linaro.org/people/dmitry.baryshkov/kernel.git branch sm8250-gpu-test
>>
>>
>
> Hi,
>
> I tried this branch, with only the sm8250-hdk.dts from my other series
> added (USB nodes removed as you don't have those in your branch), and
> the GPU starts up without problems.
>
> Possible differences I can think of:
>
> 1) Different firmware version which behaves differently? These are the
> checksums for the firmware I have:
>
> /lib/firmware# md5sum a650_*
> f6536ba45c2f9f64ec31438217b6a027 a650_gmu.bin
> 897be740bed67deaa1943e9c36293165 a650_sqe.fw
> 00f1b291a2b30c98f05c25506e3f4761 a650_zap.b00
> bec0f79c7c6f5b32254facf3c7e046c7 a650_zap.b01
> 35273e4135147a269076144a3051b498 a650_zap.b02
> ce0dd1af27306eb341a01bda642f1c64 a650_zap.elf
> 09834955a8865073f6ee483f69a98b33 a650_zap.mdt
Interesting. This is what I have here:
3a3a455289c8c36b97a76b95d1dda5cb a650_gmu.bin
9439db9b76c84f4aec625ff2bc4d1f90 a650_sqe.fw
00f1b291a2b30c98f05c25506e3f4761 a650_zap.b00
f30017eb17a440476a939d8eb1fbe102 a650_zap.b01
35273e4135147a269076144a3051b498 a650_zap.b02
03cef57e54ff48ab3ad49c7e2bcac56e a650_zap.elf
93f651f41f4bab30dfb8e2bbd8f64ffd a650_zap.mdt
> 2) GPU revision is not 650.2 (the downstream driver had workarounds for
> bugs in the first revisions, which I didn't include in the upstream driver)
Interesting, I will take a look. The first obvious difference is the
hang timeout and the a6xx_gmu_start() handling.
>
> 3) Something in the kernel config is making a difference. Here is the
> kernel config I used to test this:
> https://gist.github.com/flto/c6b1bc48abda6fb580a2f21c51039c81
No, your config produces the same result:
[ 46.964891] msm msm: [drm:0xffffffc01049bd00] loaded qcom/a650_sqe.fw
from new location
[ 46.973156] msm msm: [drm:0xffffffc01049bd00] loaded
qcom/a650_gmu.bin from new location
[ 46.994573] platform 3d6a000.gmu: [drm:0xffffffc0104a85d4] *ERROR*
GMU firmware initialization timed out
[ 47.004537] msm msm: [drm:0xffffffc01049b584] *ERROR* Couldn't power
up the GPU: -110
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250
2020-07-03 15:03 ` [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Dmitry Baryshkov
2020-07-03 15:08 ` Jonathan Marek
@ 2020-07-06 19:50 ` Dmitry Baryshkov
1 sibling, 0 replies; 17+ messages in thread
From: Dmitry Baryshkov @ 2020-07-06 19:50 UTC (permalink / raw)
To: Jonathan Marek, linux-arm-msm
Cc: Andy Gross, Bjorn Andersson, Deepak Katragadda,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:COMMON CLK FRAMEWORK, open list, Michael Turquette,
Rob Herring, Stephen Boyd, Taniya Das, Vinod Koul
On 03/07/2020 18:03, Dmitry Baryshkov wrote:
> On 30/06/2020 00:17, Jonathan Marek wrote:
>> This series adds the missing clock drivers and dts nodes to enable
>> the GPU on both SM8150 and SM8250.
>>
>> Note an extra patch [1] is still required for GPU to work on SM8250.
>>
>> Changes in V2:
>> * Added "clk: qcom: gcc: fix sm8150 GPU and NPU clocks" to fix the
>> newly added
>> SM8150 GPU gcc clocks
>> * Added "Fixes:" tag to "clk: qcom: clk-alpha-pll: remove
>> unused/incorrect PLL_CAL_VAL"
>> * Added yaml schemas to gpucc dt-bindings patches
>> * Added "clk: qcom: add common gdsc_gx_do_nothing_enable for gpucc
>> drivers" and changed
>> gpucc patches to use it.
>> * Removed CLK_IS_CRITICAL from gpu_cc_ahb_clk
>> * Added missing rpmh regulator level for sm8250 GPU clock levels
>> * Use sm8150/sm8250 iommu compatibles in dts
>> * Add gcc_gpu_gpll0_clk_src/gcc_gpu_gpll0_div_clk_src to gpucc clocks
>> in dts
>>
>> [1] https://gist.github.com/flto/784f1aca761ebf2fe6c105719a4a04ca
>
> With your patches applied:
>
> [ 56.751977] msm msm: [drm:adreno_request_fw] loaded qcom/a650_sqe.fw
> from new location
> [ 56.760166] msm msm: [drm:adreno_request_fw] loaded qcom/a650_gmu.bin
> from new location
> [ 56.768485] arm-smmu 3da0000.iommu: genpd_runtime_resume()
> [ 56.774196] PM: gpu_cx_gdsc: Power-on latency exceeded, new value
> 49531 ns
> [ 56.781730] arm-smmu 3da0000.iommu: resume latency exceeded, 462604 ns
> [ 56.799559] platform 3d6a000.gmu: [drm:a6xx_gmu_resume] *ERROR* GMU
> firmware initialization timed out
> [ 56.809260] arm-smmu 3da0000.iommu: genpd_runtime_suspend()
> [ 56.813062] msm msm: [drm:adreno_load_gpu] *ERROR* Couldn't power up
> the GPU: -110
Confirmed to be a firmware issue. With older firmware proposed patches
work fine. A patch to support newer firmware releases will be submitted
separately.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2020-07-06 19:50 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-29 21:17 [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 06/13] dt-bindings: clock: Introduce SM8150 QCOM Graphics clock bindings Jonathan Marek
2020-07-02 20:43 ` Rob Herring
2020-07-02 20:44 ` Rob Herring
2020-06-29 21:17 ` [RESEND PATCH v2 07/13] dt-bindings: clock: Introduce SM8250 " Jonathan Marek
2020-07-02 20:46 ` Rob Herring
2020-07-02 20:49 ` Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 11/13] dt-bindings: power: Add missing rpmpd rpmh regulator level Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 12/13] arm64: dts: qcom: add sm8150 GPU nodes Jonathan Marek
2020-06-29 21:17 ` [RESEND PATCH v2 13/13] arm64: dts: qcom: add sm8250 " Jonathan Marek
2020-07-03 15:03 ` [RESEND PATCH v2 00/13] Enable GPU for SM8150 and SM8250 Dmitry Baryshkov
2020-07-03 15:08 ` Jonathan Marek
2020-07-03 15:14 ` Dmitry Baryshkov
2020-07-03 17:29 ` Dmitry Baryshkov
2020-07-05 21:08 ` Jonathan Marek
2020-07-06 10:28 ` Dmitry Baryshkov
2020-07-06 19:50 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).