Skip to contentSkip to conversation

arm64: dts: qcom: sc7280: Add venus DT node

PATCH RESEND In review Dikshita Agarwal 3 participants 3 messages Sep 21, 2021 – Oct 22, 2021

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH RESEND v6 1/1 arm64: dts: qcom: sc7280: Add venus DT node

Add DT entries for the sc7280 venus encoder/decoder.

this patch depends on [1].

[1] https://patchwork.kernel.org/project/linux-arm-msm/list/?series=529463

---
 arch/arm64/boot/dts/qcom/sc7280.dtsi | 75 ++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
arch/arm64/boot/dts/qcom/sc7280.dtsi +75 -0
index a8c274a..f171ababc 100644
@@ -63,6 +63,11 @@
 			no-map;
 			reg = <0x0 0x80b00000 0x0 0x100000>;
 		};
+
+		video_mem: memory@8b200000 {
+			reg = <0x0 0x8b200000 0x0 0x500000>;
+			no-map;
+		};
 	};
 
 	cpus {
@@ -1063,6 +1068,76 @@
 			qcom,bcm-voters = <&apps_bcm_voter>;
 		};
 
+		venus: video-codec@aa00000 {
+			compatible = "qcom,sc7280-venus";
+			reg = <0 0x0aa00000 0 0xd0600>;
+			interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+			clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
+				 <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
+				 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+				 <&videocc VIDEO_CC_MVS0_CORE_CLK>,
+				 <&videocc VIDEO_CC_MVS0_AXI_CLK>;
+			clock-names = "core", "bus", "iface",
+				      "vcodec_core", "vcodec_bus";
+
+			power-domains = <&videocc MVSC_GDSC>,
+					<&videocc MVS0_GDSC>,
+					<&rpmhpd SC7280_CX>;
+			power-domain-names = "venus", "vcodec0", "cx";
+			operating-points-v2 = <&venus_opp_table>;
+
+			interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
+					<&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
+			interconnect-names = "cpu-cfg", "video-mem";
+
+			iommus = <&apps_smmu 0x2180 0x20>,
+				 <&apps_smmu 0x2184 0x20>;
+			memory-region = <&video_mem>;
+
+			video-decoder {
+				compatible = "venus-decoder";
+			};
+
+			video-encoder {
+				compatible = "venus-encoder";
+			};
+
+			video-firmware {
+				iommus = <&apps_smmu 0x21a2 0x0>;
+			};
+
+			venus_opp_table: venus-opp-table {
+				compatible = "operating-points-v2";
+
+				opp-133330000 {
+					opp-hz = /bits/ 64 <133330000>;
+					required-opps = <&rpmhpd_opp_low_svs>;
+				};
+
+				opp-240000000 {
+					opp-hz = /bits/ 64 <240000000>;
+					required-opps = <&rpmhpd_opp_svs>;
+				};
+
+				opp-335000000 {
+					opp-hz = /bits/ 64 <335000000>;
+					required-opps = <&rpmhpd_opp_svs_l1>;
+				};
+
+				opp-424000000 {
+					opp-hz = /bits/ 64 <424000000>;
+					required-opps = <&rpmhpd_opp_nom>;
+				};
+
+				opp-460000048 {
+					opp-hz = /bits/ 64 <460000048>;
+					required-opps = <&rpmhpd_opp_turbo>;
+				};
+			};
+
+		};
+
 		videocc: clock-controller@aaf0000 {
 			compatible = "qcom,sc7280-videocc";
 			reg = <0 0xaaf0000 0 0x10000>;
Signature · 1 line
2.7.4
#1 lore raw
Quoted 5 lines · Dikshita Agarwal

Add DT entries for the sc7280 venus encoder/decoder.

this patch depends on [1].

[1] https://patchwork.kernel.org/project/linux-arm-msm/list/?series=529463

The stuff you write here will be forever imprinted in the git history and it's already unnecessary, given that the patch you reference here is available in linux-next.

Things you want to mention, but shouldn't go into the git history, put those below the '---' line.

Quoted 25 lines
---
 arch/arm64/boot/dts/qcom/sc7280.dtsi | 75 ++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
arch/arm64/boot/dts/qcom/sc7280.dtsi +5 -0
index a8c274a..f171ababc 100644
@@ -63,6 +63,11 @@
 			no-map;
 			reg = <0x0 0x80b00000 0x0 0x100000>;
 		};
+
+		video_mem: memory@8b200000 {
+			reg = <0x0 0x8b200000 0x0 0x500000>;
+			no-map;
+		};
 	};
 
 	cpus {

arch/arm64/boot/dts/qcom/sc7280.dtsi line 1072

Quoted 5 lines
arch/arm64/boot/dts/qcom/sc7280.dtsi +2 -0
@@ -1063,6 +1068,76 @@
 			qcom,bcm-voters = <&apps_bcm_voter>;
 		};
 
+		venus: video-codec@aa00000 {
+			compatible = "qcom,sc7280-venus";

I do however now see this compatible defined in a binding in linux-next, so you definitely should have listed that patch as a dependency - and preferably held off sending me 6 versions (plus resend) of a patch that I can't merge.

Please ping me once the binding is merged, so that I know when I can merge this patch.

Thanks,
Bjorn

Quoted 74 lines
arch/arm64/boot/dts/qcom/sc7280.dtsi +68 -0
+			reg = <0 0x0aa00000 0 0xd0600>;
+			interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+			clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
+				 <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
+				 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+				 <&videocc VIDEO_CC_MVS0_CORE_CLK>,
+				 <&videocc VIDEO_CC_MVS0_AXI_CLK>;
+			clock-names = "core", "bus", "iface",
+				      "vcodec_core", "vcodec_bus";
+
+			power-domains = <&videocc MVSC_GDSC>,
+					<&videocc MVS0_GDSC>,
+					<&rpmhpd SC7280_CX>;
+			power-domain-names = "venus", "vcodec0", "cx";
+			operating-points-v2 = <&venus_opp_table>;
+
+			interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
+					<&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
+			interconnect-names = "cpu-cfg", "video-mem";
+
+			iommus = <&apps_smmu 0x2180 0x20>,
+				 <&apps_smmu 0x2184 0x20>;
+			memory-region = <&video_mem>;
+
+			video-decoder {
+				compatible = "venus-decoder";
+			};
+
+			video-encoder {
+				compatible = "venus-encoder";
+			};
+
+			video-firmware {
+				iommus = <&apps_smmu 0x21a2 0x0>;
+			};
+
+			venus_opp_table: venus-opp-table {
+				compatible = "operating-points-v2";
+
+				opp-133330000 {
+					opp-hz = /bits/ 64 <133330000>;
+					required-opps = <&rpmhpd_opp_low_svs>;
+				};
+
+				opp-240000000 {
+					opp-hz = /bits/ 64 <240000000>;
+					required-opps = <&rpmhpd_opp_svs>;
+				};
+
+				opp-335000000 {
+					opp-hz = /bits/ 64 <335000000>;
+					required-opps = <&rpmhpd_opp_svs_l1>;
+				};
+
+				opp-424000000 {
+					opp-hz = /bits/ 64 <424000000>;
+					required-opps = <&rpmhpd_opp_nom>;
+				};
+
+				opp-460000048 {
+					opp-hz = /bits/ 64 <460000048>;
+					required-opps = <&rpmhpd_opp_turbo>;
+				};
+			};
+
+		};
+
 		videocc: clock-controller@aaf0000 {
 			compatible = "qcom,sc7280-videocc";
 			reg = <0 0xaaf0000 0 0x10000>;
Signature · 1 line
2.7.4
#2 lore raw

Hi Dikshita,

Quoted 7 lines · Bjorn Andersson
Quoted 5 lines · Dikshita Agarwal

Add DT entries for the sc7280 venus encoder/decoder.

this patch depends on [1].

[1] https://patchwork.kernel.org/project/linux-arm-msm/list/?series=529463

Please drop those two lines above.

Quoted 12 lines

The stuff you write here will be forever imprinted in the git history and it's already unnecessary, given that the patch you reference here is available in linux-next.

Things you want to mention, but shouldn't go into the git history, put those below the '---' line.

Quoted 4 lines

I guess this should be :

but checkpatch --strict should complain about this, no?

Quoted 32 lines
Quoted 21 lines
---
 arch/arm64/boot/dts/qcom/sc7280.dtsi | 75 ++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
arch/arm64/boot/dts/qcom/sc7280.dtsi +5 -0
index a8c274a..f171ababc 100644
@@ -63,6 +63,11 @@
 			no-map;
 			reg = <0x0 0x80b00000 0x0 0x100000>;
 		};
+
+		video_mem: memory@8b200000 {
+			reg = <0x0 0x8b200000 0x0 0x500000>;
+			no-map;
+		};
 	};
 
 	cpus {

arch/arm64/boot/dts/qcom/sc7280.dtsi line 1072

Quoted 5 lines
arch/arm64/boot/dts/qcom/sc7280.dtsi +2 -0
@@ -1063,6 +1068,76 @@
 			qcom,bcm-voters = <&apps_bcm_voter>;
 		};
 
+		venus: video-codec@aa00000 {
+			compatible = "qcom,sc7280-venus";

I do however now see this compatible defined in a binding in linux-next, so you definitely should have listed that patch as a dependency - and preferably held off sending me 6 versions (plus resend) of a patch that I can't merge.

Quoted 2 lines

Please ping me once the binding is merged, so that I know when I can merge this patch.

Bjorn, the binding is in linux-next now.

Signature · 3 lines
-- 
regards,
Stan