Skip to contentSkip to conversation

Enable video on sc7180

PATCH In review Dikshita Agarwal 5 participants 16 messages Jan 14, 2020 – Feb 14, 2020

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

v4 cover Enable video on sc7180

Hello,

Changes since v3:

- addressed DT and DT schema review comments.

- renamed DT schema file.

v3 can be found at [1].
These changes depend on patch series [2] - [6].

Thanks,
Dikshita

[1] https://lkml.org/lkml/2020/1/2/267
[2] https://patchwork.kernel.org/project/linux-media/list/?series=219021
[3] https://patchwork.kernel.org/project/linux-media/list/?series=214797
[4] https://lkml.org/lkml/2019/12/27/73
[5] https://lore.kernel.org/patchwork/project/lkml/list/?series=418681
[6] https://lore.kernel.org/patchwork/project/lkml/list/?series=424054

Dikshita Agarwal (4):
arm64: dts: sc7180: Add Venus video codec DT node
dt-bindings: media: venus: Add sc7180 DT schema
venus: core: add sc7180 DT compatible and resource struct
arm64: dts: sc7180: Add Venus firmware subnode

 .../bindings/media/qcom,sc7180-venus.yaml          | 144 +++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180-idp.dts            |   6 +
 arch/arm64/boot/dts/qcom/sc7180.dtsi               |  36 ++++++
 drivers/media/platform/qcom/venus/core.c           |  45 +++++++
 4 files changed, 231 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
Signature · 1 line
1.9.1
#1 lore raw

PATCH v4 1/4 arm64: dts: sc7180: Add Venus video codec DT node

This adds Venus video codec DT node for sc7180.

---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
arch/arm64/boot/dts/qcom/sc7180.dtsi +36 -0
index 3676bfd..6ecacca 100644
@@ -10,6 +10,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/phy/phy-qcom-qusb2.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/clock/qcom,videocc-sc7180.h>
 
 / {
 	interrupt-parent = <&intc>;
@@ -66,6 +67,11 @@
 			compatible = "qcom,cmd-db";
 			no-map;
 		};
+
+		venus_mem: memory@8f600000 {
+			reg = <0 0x8f600000 0 0x500000>;
+			no-map;
+		};
 	};
 
 	cpus {
@@ -1043,6 +1049,36 @@
 			};
 		};
 
+		venus: video-codec@aa00000 {
+			compatible = "qcom,sc7180-venus";
+			reg = <0 0x0aa00000 0 0xff000>;
+			interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+			power-domains = <&videocc VENUS_GDSC>,
+					<&videocc VCODEC0_GDSC>;
+			power-domain-names = "venus", "vcodec0";
+			clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
+				 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+				 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
+				 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
+				 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
+			clock-names = "core", "iface", "bus",
+				      "vcodec0_core", "vcodec0_bus";
+			iommus = <&apps_smmu 0x0c00 0x60>;
+			memory-region = <&venus_mem>;
+
+			interconnects = <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI1>,
+					<&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_VENUS_CFG>;
+			interconnect-names = "video-mem", "cpu-cfg";
+
+			video-decoder {
+				compatible = "venus-decoder";
+			};
+
+			video-encoder {
+				compatible = "venus-encoder";
+			};
+		};
+
 		pdc: interrupt-controller@b220000 {
 			compatible = "qcom,sc7180-pdc", "qcom,pdc";
 			reg = <0 0x0b220000 0 0x30000>;
Signature · 1 line
1.9.1
Reviewed-by on v4 1/4
#2 lore raw

Re: [PATCH V4 1/4] arm64: dts: sc7180: Add Venus video codec DT node

Hi,

Quoted 6 lines · Dikshita Agarwal

This adds Venus video codec DT node for sc7180.

---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
Quoted 63 lines
arch/arm64/boot/dts/qcom/sc7180.dtsi +36 -0
index 3676bfd..6ecacca 100644
@@ -10,6 +10,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/phy/phy-qcom-qusb2.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/clock/qcom,videocc-sc7180.h>
 
 / {
 	interrupt-parent = <&intc>;
@@ -66,6 +67,11 @@
 			compatible = "qcom,cmd-db";
 			no-map;
 		};
+
+		venus_mem: memory@8f600000 {
+			reg = <0 0x8f600000 0 0x500000>;
+			no-map;
+		};
 	};
 
 	cpus {
@@ -1043,6 +1049,36 @@
 			};
 		};
 
+		venus: video-codec@aa00000 {
+			compatible = "qcom,sc7180-venus";
+			reg = <0 0x0aa00000 0 0xff000>;
+			interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+			power-domains = <&videocc VENUS_GDSC>,
+					<&videocc VCODEC0_GDSC>;
+			power-domain-names = "venus", "vcodec0";
+			clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
+				 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+				 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
+				 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
+				 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
+			clock-names = "core", "iface", "bus",
+				      "vcodec0_core", "vcodec0_bus";
+			iommus = <&apps_smmu 0x0c00 0x60>;
+			memory-region = <&venus_mem>;
+
+			interconnects = <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI1>,
+					<&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_VENUS_CFG>;
+			interconnect-names = "video-mem", "cpu-cfg";
+
+			video-decoder {
+				compatible = "venus-decoder";
+			};
+
+			video-encoder {
+				compatible = "venus-encoder";
+			};
+		};
+
 		pdc: interrupt-controller@b220000 {
 			compatible = "qcom,sc7180-pdc", "qcom,pdc";
 			reg = <0 0x0b220000 0 0x30000>;
Signature · 2 lines
regards,
Stan
#3 lore raw

PATCH v4 2/4 dt-bindings: media: venus: Add sc7180 DT schema

In reply to Dikshita Agarwal

Add new qcom,sc7180-venus DT binding schema.

---
 .../bindings/media/qcom,sc7180-venus.yaml          | 144 +++++++++++++++++++++
 1 file changed, 144 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml new file +144 -0
new file mode 100644
index 0000000..7b6a8fb
@@ -0,0 +1,144 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/media/qcom,sc7180-venus.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Qualcomm Venus video encode and decode accelerators
+
+maintainers:
+  - Stanimir Varbanov <[email protected]>
+
+description: |
+  The Venus IP is a video encode and decode accelerator present
+  on Qualcomm platforms
+
+properties:
+  compatible:
+    const: qcom,sc7180-venus
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 2
+
+  power-domain-names:
+    items:
+      - const: venus
+      - const: vcodec0
+
+  clocks:
+    maxItems: 5
+
+  clock-names:
+    items:
+      - const: core
+      - const: iface
+      - const: bus
+      - const: vcodec0_core
+      - const: vcodec0_bus
+
+  iommus:
+    maxItems: 1
+
+  memory-region:
+    maxItems: 1
+
+  interconnects:
+    maxItems: 2
+
+  interconnect-names:
+    items:
+      - const: video-mem
+      - const: cpu-cfg
+
+  video-decoder:
+    type: object
+
+    properties:
+      compatible:
+        const: venus-decoder
+
+    required:
+      - compatible
+
+    additionalProperties: false
+
+  video-encoder:
+    type: object
+
+    properties:
+      compatible:
+        const: venus-encoder
+
+    required:
+      - compatible
+
+    additionalProperties: false
+
+  video-firmware:
+    type: object
+
+    description: |
+      Firmware subnode is needed when the platform does not
+      have TrustZone.
+
+    properties:
+      iommus:
+        maxItems: 1
+
+    required:
+      - iommus
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - power-domains
+  - power-domain-names
+  - clocks
+  - clock-names
+  - iommus
+  - memory-region
+  - video-decoder
+  - video-encoder
+
+examples:
+  - |
+        #include <dt-bindings/interrupt-controller/arm-gic.h>
+        #include <dt-bindings/clock/qcom,videocc-sc7180.h>
+
+        venus: video-codec@aa00000 {
+                compatible = "qcom,sc7180-venus";
+                reg = <0 0x0aa00000 0 0xff000>;
+                interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+                power-domains = <&videocc VENUS_GDSC>,
+                                <&videocc VCODEC0_GDSC>;
+                power-domain-names = "venus", "vcodec0";
+                clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
+                         <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+                         <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
+                         <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
+                         <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
+                clock-names = "core", "iface", "bus",
+                              "vcodec0_core", "vcodec0_bus";
+                iommus = <&apps_smmu 0x0c00 0x60>;
+                memory-region = <&venus_mem>;
+
+                interconnects = <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI1>,
+                                <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_VENUS_CFG>;
+                interconnect-names = "video-mem", "cpu-cfg";
+
+                video-decoder {
+                        compatible = "venus-decoder";
+                };
+
+                video-encoder {
+                        compatible = "venus-encoder";
+                };
+        };
Signature · 1 line
1.9.1
maintainer Reviewed-by on v4 2/4
#4 lore raw

Re: [PATCH V4 2/4] dt-bindings: media: venus: Add sc7180 DT schema

Quoted 9 lines · Dikshita Agarwal

Add new qcom,sc7180-venus DT binding schema.

---
 .../bindings/media/qcom,sc7180-venus.yaml          | 144 +++++++++++++++++++++
 1 file changed, 144 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
#5 lore raw

Re: [PATCH V4 2/4] dt-bindings: media: venus: Add sc7180 DT schema

In reply to Dikshita Agarwal

Hi,

I'll merge this through media tree but will drop interconnect properties from example cause of failing make dt_binding_check.

We will add interconnect properties later on once the sc7180 interconnect driver is merged.

Quoted 150 lines · Dikshita Agarwal

Add new qcom,sc7180-venus DT binding schema.

---
 .../bindings/media/qcom,sc7180-venus.yaml          | 144 +++++++++++++++++++++
 1 file changed, 144 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml new file +132 -0
new file mode 100644
index 0000000..7b6a8fb
@@ -0,0 +1,144 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/media/qcom,sc7180-venus.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Qualcomm Venus video encode and decode accelerators
+
+maintainers:
+  - Stanimir Varbanov <[email protected]>
+
+description: |
+  The Venus IP is a video encode and decode accelerator present
+  on Qualcomm platforms
+
+properties:
+  compatible:
+    const: qcom,sc7180-venus
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 2
+
+  power-domain-names:
+    items:
+      - const: venus
+      - const: vcodec0
+
+  clocks:
+    maxItems: 5
+
+  clock-names:
+    items:
+      - const: core
+      - const: iface
+      - const: bus
+      - const: vcodec0_core
+      - const: vcodec0_bus
+
+  iommus:
+    maxItems: 1
+
+  memory-region:
+    maxItems: 1
+
+  interconnects:
+    maxItems: 2
+
+  interconnect-names:
+    items:
+      - const: video-mem
+      - const: cpu-cfg
+
+  video-decoder:
+    type: object
+
+    properties:
+      compatible:
+        const: venus-decoder
+
+    required:
+      - compatible
+
+    additionalProperties: false
+
+  video-encoder:
+    type: object
+
+    properties:
+      compatible:
+        const: venus-encoder
+
+    required:
+      - compatible
+
+    additionalProperties: false
+
+  video-firmware:
+    type: object
+
+    description: |
+      Firmware subnode is needed when the platform does not
+      have TrustZone.
+
+    properties:
+      iommus:
+        maxItems: 1
+
+    required:
+      - iommus
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - power-domains
+  - power-domain-names
+  - clocks
+  - clock-names
+  - iommus
+  - memory-region
+  - video-decoder
+  - video-encoder
+
+examples:
+  - |
+        #include <dt-bindings/interrupt-controller/arm-gic.h>
+        #include <dt-bindings/clock/qcom,videocc-sc7180.h>
+
+        venus: video-codec@aa00000 {
+                compatible = "qcom,sc7180-venus";
+                reg = <0 0x0aa00000 0 0xff000>;
+                interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+                power-domains = <&videocc VENUS_GDSC>,
+                                <&videocc VCODEC0_GDSC>;
+                power-domain-names = "venus", "vcodec0";
+                clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
+                         <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+                         <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
+                         <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
+                         <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
+                clock-names = "core", "iface", "bus",
+                              "vcodec0_core", "vcodec0_bus";
+                iommus = <&apps_smmu 0x0c00 0x60>;
+                memory-region = <&venus_mem>;
+
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml line 135

Quoted 3 lines
Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml new file +3 -0
+                interconnects = <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI1>,
+                                <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_VENUS_CFG>;
+                interconnect-names = "video-mem", "cpu-cfg";

<<<<

Quoted 10 lines
Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml new file +9 -0
+
+                video-decoder {
+                        compatible = "venus-decoder";
+                };
+
+                video-encoder {
+                        compatible = "venus-encoder";
+                };
+        };
Signature · 2 lines
regards,
Stan
#6 lore raw

PATCH v4 3/4 venus: core: add sc7180 DT compatible and resource struct

In reply to Dikshita Agarwal

This add DT compatible string and resource structure for sc7180.

---
 drivers/media/platform/qcom/venus/core.c | 45 ++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
drivers/media/platform/qcom/venus/core.c +45 -0
index c7525d9..194b10b9 100644
@@ -521,11 +521,56 @@ static __maybe_unused int venus_runtime_resume(struct device *dev)
 	.fwname = "qcom/venus-5.2/venus.mdt",
 };
 
+static const struct freq_tbl sc7180_freq_table[] = {
+	{  0, 500000000 },
+	{  0, 434000000 },
+	{  0, 340000000 },
+	{  0, 270000000 },
+	{  0, 150000000 },
+};
+
+static const struct bw_tbl sc7180_bw_table_enc[] = {
+	{  972000,  750000, 0, 0, 0 },	/* 3840x2160@30 */
+	{  489600,  451000, 0, 0, 0 },	/* 1920x1080@60 */
+	{  244800,  234000, 0, 0, 0 },	/* 1920x1080@30 */
+};
+
+static const struct bw_tbl sc7180_bw_table_dec[] = {
+	{ 1036800, 1386000, 0, 1875000, 0 },	/* 4096x2160@30 */
+	{  489600,  865000, 0, 1146000, 0 },	/* 1920x1080@60 */
+	{  244800,  530000, 0,  583000, 0 },	/* 1920x1080@30 */
+};
+
+static const struct venus_resources sc7180_res = {
+	.freq_tbl = sc7180_freq_table,
+	.freq_tbl_size = ARRAY_SIZE(sc7180_freq_table),
+	.bw_tbl_enc = sc7180_bw_table_enc,
+	.bw_tbl_enc_size = ARRAY_SIZE(sc7180_bw_table_enc),
+	.bw_tbl_dec = sc7180_bw_table_dec,
+	.bw_tbl_dec_size = ARRAY_SIZE(sc7180_bw_table_dec),
+	.codec_freq_data = sdm845_codec_freq_data,
+	.codec_freq_data_size = ARRAY_SIZE(sdm845_codec_freq_data),
+	.clks = {"core", "iface", "bus" },
+	.clks_num = 3,
+	.vcodec0_clks = { "vcodec0_core", "vcodec0_bus" },
+	.vcodec_clks_num = 2,
+	.vcodec_pmdomains = { "venus", "vcodec0" },
+	.vcodec_pmdomains_num = 2,
+	.vcodec_num = 1,
+	.hfi_version = HFI_VERSION_4XX,
+	.vmem_id = VIDC_RESOURCE_NONE,
+	.vmem_size = 0,
+	.vmem_addr = 0,
+	.dma_mask = 0xe0000000 - 1,
+	.fwname = "qcom/venus-5.4/venus.mdt",
+};
+
 static const struct of_device_id venus_dt_match[] = {
 	{ .compatible = "qcom,msm8916-venus", .data = &msm8916_res, },
 	{ .compatible = "qcom,msm8996-venus", .data = &msm8996_res, },
 	{ .compatible = "qcom,sdm845-venus", .data = &sdm845_res, },
 	{ .compatible = "qcom,sdm845-venus-v2", .data = &sdm845_res_v2, },
+	{ .compatible = "qcom,sc7180-venus", .data = &sc7180_res, },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, venus_dt_match);
Signature · 1 line
1.9.1
Acked-by on v4 3/4
#7 lore raw

Re: [PATCH V4 3/4] venus: core: add sc7180 DT compatible and resource struct

Hi,

Quoted 6 lines · Dikshita Agarwal

This add DT compatible string and resource structure for sc7180.

---
 drivers/media/platform/qcom/venus/core.c | 45 ++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
Quoted 63 lines
drivers/media/platform/qcom/venus/core.c +45 -0
index c7525d9..194b10b9 100644
@@ -521,11 +521,56 @@ static __maybe_unused int venus_runtime_resume(struct device *dev)
 	.fwname = "qcom/venus-5.2/venus.mdt",
 };
 
+static const struct freq_tbl sc7180_freq_table[] = {
+	{  0, 500000000 },
+	{  0, 434000000 },
+	{  0, 340000000 },
+	{  0, 270000000 },
+	{  0, 150000000 },
+};
+
+static const struct bw_tbl sc7180_bw_table_enc[] = {
+	{  972000,  750000, 0, 0, 0 },	/* 3840x2160@30 */
+	{  489600,  451000, 0, 0, 0 },	/* 1920x1080@60 */
+	{  244800,  234000, 0, 0, 0 },	/* 1920x1080@30 */
+};
+
+static const struct bw_tbl sc7180_bw_table_dec[] = {
+	{ 1036800, 1386000, 0, 1875000, 0 },	/* 4096x2160@30 */
+	{  489600,  865000, 0, 1146000, 0 },	/* 1920x1080@60 */
+	{  244800,  530000, 0,  583000, 0 },	/* 1920x1080@30 */
+};
+
+static const struct venus_resources sc7180_res = {
+	.freq_tbl = sc7180_freq_table,
+	.freq_tbl_size = ARRAY_SIZE(sc7180_freq_table),
+	.bw_tbl_enc = sc7180_bw_table_enc,
+	.bw_tbl_enc_size = ARRAY_SIZE(sc7180_bw_table_enc),
+	.bw_tbl_dec = sc7180_bw_table_dec,
+	.bw_tbl_dec_size = ARRAY_SIZE(sc7180_bw_table_dec),
+	.codec_freq_data = sdm845_codec_freq_data,
+	.codec_freq_data_size = ARRAY_SIZE(sdm845_codec_freq_data),
+	.clks = {"core", "iface", "bus" },
+	.clks_num = 3,
+	.vcodec0_clks = { "vcodec0_core", "vcodec0_bus" },
+	.vcodec_clks_num = 2,
+	.vcodec_pmdomains = { "venus", "vcodec0" },
+	.vcodec_pmdomains_num = 2,
+	.vcodec_num = 1,
+	.hfi_version = HFI_VERSION_4XX,
+	.vmem_id = VIDC_RESOURCE_NONE,
+	.vmem_size = 0,
+	.vmem_addr = 0,
+	.dma_mask = 0xe0000000 - 1,
+	.fwname = "qcom/venus-5.4/venus.mdt",
+};
+
 static const struct of_device_id venus_dt_match[] = {
 	{ .compatible = "qcom,msm8916-venus", .data = &msm8916_res, },
 	{ .compatible = "qcom,msm8996-venus", .data = &msm8996_res, },
 	{ .compatible = "qcom,sdm845-venus", .data = &sdm845_res, },
 	{ .compatible = "qcom,sdm845-venus-v2", .data = &sdm845_res_v2, },
+	{ .compatible = "qcom,sc7180-venus", .data = &sc7180_res, },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, venus_dt_match);
Signature · 2 lines
regards,
Stan
#8 lore raw

PATCH v4 4/4 arm64: dts: sc7180: Add Venus firmware subnode

In reply to Dikshita Agarwal

This adds Venus firmware subnode for non-TZ platform.

---
 arch/arm64/boot/dts/qcom/sc7180-idp.dts | 6 ++++++
 1 file changed, 6 insertions(+)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +6 -0
index 388f50a..2f82510 100644
@@ -287,6 +287,12 @@
 	vdda-pll-supply = <&vreg_l4a_0p8>;
 };
 
+&venus {
+	video-firmware {
+		iommus = <&apps_smmu 0x0c42 0x0>;
+	};
+};
+
 /* PINCTRL - additions to nodes defined in sc7180.dtsi */
 
 &qspi_clk {
Signature · 1 line
1.9.1
Reviewed-by on v4 4/4
#9 lore raw

Re: [PATCH V4 4/4] arm64: dts: sc7180: Add Venus firmware subnode

Hi,

Quoted 6 lines · Dikshita Agarwal

This adds Venus firmware subnode for non-TZ platform.

---
 arch/arm64/boot/dts/qcom/sc7180-idp.dts | 6 ++++++
 1 file changed, 6 insertions(+)
Quoted 19 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +6 -0
index 388f50a..2f82510 100644
@@ -287,6 +287,12 @@
 	vdda-pll-supply = <&vreg_l4a_0p8>;
 };
 
+&venus {
+	video-firmware {
+		iommus = <&apps_smmu 0x0c42 0x0>;
+	};
+};
+
 /* PINCTRL - additions to nodes defined in sc7180.dtsi */
 
 &qspi_clk {
Signature · 2 lines
regards,
Stan
#10 lore raw
In reply to Dikshita Agarwal
Quoted 6 lines · Dikshita Agarwal

Hello,

Changes since v3:

- addressed DT and DT schema review comments.

Quoted 8 lines

- renamed DT schema file.

v3 can be found at [1].
These changes depend on patch series [2] - [6].

Thanks,
Dikshita

Picked up the dts patches for 5.7, with Stan's acks

Regards,
Bjorn

Quoted 23 lines

[1] https://lkml.org/lkml/2020/1/2/267
[2] https://patchwork.kernel.org/project/linux-media/list/?series=219021
[3] https://patchwork.kernel.org/project/linux-media/list/?series=214797
[4] https://lkml.org/lkml/2019/12/27/73
[5] https://lore.kernel.org/patchwork/project/lkml/list/?series=418681
[6] https://lore.kernel.org/patchwork/project/lkml/list/?series=424054

Dikshita Agarwal (4):
arm64: dts: sc7180: Add Venus video codec DT node
dt-bindings: media: venus: Add sc7180 DT schema
venus: core: add sc7180 DT compatible and resource struct
arm64: dts: sc7180: Add Venus firmware subnode

 .../bindings/media/qcom,sc7180-venus.yaml          | 144 +++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180-idp.dts            |   6 +
 arch/arm64/boot/dts/qcom/sc7180.dtsi               |  36 ++++++
 drivers/media/platform/qcom/venus/core.c           |  45 +++++++
 4 files changed, 231 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
Signature · 1 line
1.9.1
#11 lore raw

Hi Bjorn,

Quoted 10 lines · Bjorn Andersson
Quoted 8 lines · Dikshita Agarwal

Hello,

Changes since v3:

- addressed DT and DT schema review comments.

- renamed DT schema file.

Quoted 8 lines
Quoted 6 lines

v3 can be found at [1].
These changes depend on patch series [2] - [6].

Thanks,
Dikshita

Picked up the dts patches for 5.7, with Stan's acks

I can't seem to find the patches in the QCOM repo, neither in 'arm64-for-5.7' nor 'for-next'. Am I looking at the wrong place or maybe you forget to push these?

Thanks

Matthias

#12 lore raw
Quoted 20 lines · Matthias Kaehlcke

Hi Bjorn,

Quoted 17 lines · Bjorn Andersson
Quoted 14 lines · Dikshita Agarwal

Hello,

Changes since v3:

- addressed DT and DT schema review comments.

- renamed DT schema file.

v3 can be found at [1].
These changes depend on patch series [2] - [6].

Thanks,
Dikshita

Quoted 6 lines
Quoted 1 line

Picked up the dts patches for 5.7, with Stan's acks

I can't seem to find the patches in the QCOM repo, neither in 'arm64-for-5.7' nor 'for-next'. Am I looking at the wrong place or maybe you forget to push these?

Thanks for the question Matthias, I was looking for this email as I rebased onto v5.6-rc1 earlier this week, but got distracted.

I pulled them in, but in the rebase I realized that we don't have the interconnects in place, so in it's current form these patches doesn't compile.

Seems we're waiting for rather trivial respin of
https://lore.kernel.org/linux-arm-msm/[email protected]/
to get this settled.

Regards,
Bjorn

#13 lore raw
Quoted 29 lines · Bjorn Andersson
Quoted 20 lines · Matthias Kaehlcke

Hi Bjorn,

Quoted 17 lines · Bjorn Andersson
Quoted 14 lines · Dikshita Agarwal

Hello,

Changes since v3:

- addressed DT and DT schema review comments.

- renamed DT schema file.

v3 can be found at [1].
These changes depend on patch series [2] - [6].

Thanks,
Dikshita

Quoted 6 lines
Quoted 1 line

Picked up the dts patches for 5.7, with Stan's acks

I can't seem to find the patches in the QCOM repo, neither in 'arm64-for-5.7' nor 'for-next'. Am I looking at the wrong place or maybe you forget to push these?

Quoted 6 lines

Thanks for the question Matthias, I was looking for this email as I rebased onto v5.6-rc1 earlier this week, but got distracted.

I pulled them in, but in the rebase I realized that we don't have the interconnects in place, so in it's current form these patches doesn't compile.

Now that you say it, I also stumbled across this at some point ...

Quoted 3 lines

Seems we're waiting for rather trivial respin of
https://lore.kernel.org/linux-arm-msm/[email protected]/
to get this settled.

Thanks for the clarification!

#14 lore raw
In reply to Bjorn Andersson
Quoted 32 lines · Bjorn Andersson
Quoted 20 lines · Matthias Kaehlcke

Hi Bjorn,

Quoted 17 lines · Bjorn Andersson
Quoted 14 lines · Dikshita Agarwal

Hello,

Changes since v3:

- addressed DT and DT schema review comments.

- renamed DT schema file.

v3 can be found at [1].
These changes depend on patch series [2] - [6].

Thanks,
Dikshita

Quoted 6 lines
Quoted 1 line

Picked up the dts patches for 5.7, with Stan's acks

I can't seem to find the patches in the QCOM repo, neither in 'arm64-for-5.7' nor 'for-next'. Am I looking at the wrong place or maybe you forget to push these?

Thanks for the question Matthias, I was looking for this email as I rebased onto v5.6-rc1 earlier this week, but got distracted.

Quoted 7 lines

I pulled them in, but in the rebase I realized that we don't have the interconnects in place, so in it's current form these patches doesn't compile.

Seems we're waiting for rather trivial respin of
https://lore.kernel.org/linux-arm-msm/[email protected]/
to get this settled.

Hm, there has been no response to the comments in more than a month, also
the series depends on another ('Split SDM845 interconnect nodes and
consolidate RPMh support' https://patchwork.kernel.org/project/linux-arm-msm/list/?series=238831),
even though that isn't mentioned anywhere.

IIUC the interconnect configuration isn't strictly required to get the video codec to work. I wonder if it would make sense to respin this series to remove the interconnect properties. They could be added in a separate patch after the ICC support has landed.

Dikshita/Bjorn, what do you think?

#15 lore raw
Quoted 37 lines · Matthias Kaehlcke
Quoted 36 lines · Bjorn Andersson
Quoted 20 lines · Matthias Kaehlcke

Hi Bjorn,

Quoted 17 lines · Bjorn Andersson
Quoted 14 lines · Dikshita Agarwal

Hello,

Changes since v3:

- addressed DT and DT schema review comments.

- renamed DT schema file.

v3 can be found at [1].
These changes depend on patch series [2] - [6].

Thanks,
Dikshita

Quoted 6 lines
Quoted 1 line

Picked up the dts patches for 5.7, with Stan's acks

I can't seem to find the patches in the QCOM repo, neither in 'arm64-for-5.7' nor 'for-next'. Am I looking at the wrong place or maybe you forget to push these?

Thanks for the question Matthias, I was looking for this email as I rebased onto v5.6-rc1 earlier this week, but got distracted.

I pulled them in, but in the rebase I realized that we don't have the interconnects in place, so in it's current form these patches doesn't compile.

Quoted 9 lines
Quoted 3 lines

Seems we're waiting for rather trivial respin of
https://lore.kernel.org/linux-arm-msm/[email protected]/
to get this settled.

Hm, there has been no response to the comments in more than a month, also
the series depends on another ('Split SDM845 interconnect nodes and
consolidate RPMh support' https://patchwork.kernel.org/project/linux-arm-msm/list/?series=238831),
even though that isn't mentioned anywhere.

Sibi is revisiting David's 845 series, so my expectation is that it will land in this cycle.

Quoted 6 lines

IIUC the interconnect configuration isn't strictly required to get the video codec to work. I wonder if it would make sense to respin this series to remove the interconnect properties. They could be added in a separate patch after the ICC support has landed.

Dikshita/Bjorn, what do you think?

That sounds likely. Dikshita, can you confirm that we can just omit the interconnect lines from the patch and I'll just apply the patches again without these (and you can follow up with adding interconnects later).

Regards,
Bjorn