Enable video on sc7180
Subsystems (7)
v3 cover Enable video on sc7180
Hello,
Changes since v2:
- added changes to enable ICB in DT.
- addressed DT schema and resource struct review comments.
- added Venus firmware subnode for non-TZ platform.
v2 can be found at [1].
These changes depend on patch series [2] - [6].
Thanks,
Dikshita
[1] https://lkml.org/lkml/2019/12/20/126
[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,venus-sc7180.yaml | 136 +++++++++++++++++++++ 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, 223 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml
Signature · 1 line
1.9.1
PATCH v3 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
@@ -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-core0 { + compatible = "venus-decoder"; + }; + + video-core1 { + compatible = "venus-encoder"; + }; + }; + pdc: interrupt-controller@b220000 { compatible = "qcom,sc7180-pdc", "qcom,pdc"; reg = <0 0x0b220000 0 0x30000>;
Signature · 1 line
1.9.1
Re: [PATCH V3 1/4] arm64: dts: sc7180: Add Venus video codec DT node
Hi,
Quoted 39 lines · Dikshita Agarwal
This adds Venus video codec DT node for sc7180.
Signed-off-by Dikshita Agarwal <[email protected]>--- arch/arm64/boot/dts/qcom/sc7180.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+)arch/arm64/boot/dts/qcom/sc7180.dtsi +10
-0@@ -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>;
arch/arm64/boot/dts/qcom/sc7180.dtsi line 1065
Quoted 10 lines
arch/arm64/boot/dts/qcom/sc7180.dtsi +10
-0+ 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";
Please, align this as you made it for clocks.
arch/arm64/boot/dts/qcom/sc7180.dtsi line 1073
Quoted 8 lines
arch/arm64/boot/dts/qcom/sc7180.dtsi +8
-0+ 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-core0 {
The subnode name isn't correct because we have only one core. Could you rename it to video-decoder.
arch/arm64/boot/dts/qcom/sc7180.dtsi line 1077
Quoted 4 lines
arch/arm64/boot/dts/qcom/sc7180.dtsi +4
-0+ compatible = "venus-decoder"; + }; + + video-core1 {
rename to video-encoder
Quoted 8 lines
arch/arm64/boot/dts/qcom/sc7180.dtsi +4
-0+ compatible = "venus-encoder"; + }; + }; + pdc: interrupt-controller@b220000 { compatible = "qcom,sc7180-pdc", "qcom,pdc"; reg = <0 0x0b220000 0 0x30000>;
Signature · 2 lines
regards, Stan
PATCH v3 2/4 dt-bindings: media: venus: Add sc7180 DT schema
In reply to Dikshita AgarwalAdd new qcom,sc7180-venus DT binding schema.
--- .../bindings/media/qcom,venus-sc7180.yaml | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +136 -0
@@ -0,0 +1,136 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/media/qcom,venus-sc7180.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: + maxItems: 2 + items: + - const: venus + - const: vcodec0 + + clocks: + maxItems: 5 + + clock-names: + items: + - const: core + - const: iface + - const: bus + - const: vcodec0_core + - const: vcodec0_bus + + iommus: + minItems: 1 + maxItems: 20 + + memory-region: + maxItems: 1 + + video-core0: + type: object + + properties: + compatible: + const: "venus-decoder" + + required: + - compatible + + additionalProperties: false + + video-core1: + 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: + minItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - power-domain-names + - clocks + - clock-names + - iommus + - memory-region + - video-core0 + - video-core1 + +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-core0 { + compatible = "venus-decoder"; + }; + + video-core1 { + compatible = "venus-encoder"; + }; + + };
Signature · 1 line
1.9.1
Rob Herring
maintainerRe: [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema
Quoted 23 lines · Dikshita Agarwal
Add new qcom,sc7180-venus DT binding schema.
Signed-off-by Dikshita Agarwal <[email protected]>--- .../bindings/media/qcom,venus-sc7180.yaml | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,venus-sc7180.yamlDocumentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +9
-0@@ -0,0 +1,136 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/media/qcom,venus-sc7180.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: Qualcomm Venus video encode and decode accelerators +
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml line 19
Quoted 10 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +10
-0+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"
No need for quotes.
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml line 31
Quoted 12 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +12
-0+ + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 2 + + power-domain-names: + maxItems: 2
You can drop maxItems. Implied by size of 'items'.
Quoted 8 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +8
-0+ items: + - const: venus + - const: vcodec0 + + clocks: + maxItems: 5 + + clock-names:
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml line 49
Quoted 10 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +10
-0+ items: + - const: core + - const: iface + - const: bus + - const: vcodec0_core + - const: vcodec0_bus + + iommus: + minItems: 1 + maxItems: 20
As I said on the other Venus schemas, can you really have 20 IOMMUs attached? This is a single SoC, you should know how many are attached.
Rob
Quoted 68 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +68
-0+ + memory-region: + maxItems: 1 + + video-core0: + type: object + + properties: + compatible: + const: "venus-decoder" + + required: + - compatible + + additionalProperties: false + + video-core1: + 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: + minItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - power-domain-names + - clocks + - clock-names + - iommus + - memory-region + - video-core0 + - video-core1 + +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>,
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml line 126
Quoted 10 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +9
-0+ <&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";
Not documented.
Quoted 13 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +10
-0+ + video-core0 { + compatible = "venus-decoder"; + }; + + video-core1 { + compatible = "venus-encoder"; + }; + + };Signature · 1 line
1.9.1
Re: [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema
In reply to Dikshita AgarwalHi,
Quoted 91 lines · Dikshita Agarwal
Add new qcom,sc7180-venus DT binding schema.
Signed-off-by Dikshita Agarwal <[email protected]>--- .../bindings/media/qcom,venus-sc7180.yaml | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,venus-sc7180.yamlDocumentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +77
-0@@ -0,0 +1,136 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/media/qcom,venus-sc7180.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: + maxItems: 2 + items: + - const: venus + - const: vcodec0 + + clocks: + maxItems: 5 + + clock-names: + items: + - const: core + - const: iface + - const: bus + - const: vcodec0_core + - const: vcodec0_bus + + iommus: + minItems: 1 + maxItems: 20 + + memory-region: + maxItems: 1 + + video-core0: + type: object + + properties: + compatible: + const: "venus-decoder" + + required: + - compatible + + additionalProperties: false + + video-core1: + type: object + + properties: + compatible: + const: "venus-encoder" + + required: + - compatible + + additionalProperties: false +
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml line 87
Quoted 10 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +10
-0+ video-firmware: + type: object + + description: | + Firmware subnode is needed when the platform does not + have TrustZone. + + properties: + iommus: + minItems: 1
please add
required:
- iommus
Quoted 50 lines
Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file +49
-0+ +required: + - compatible + - reg + - interrupts + - power-domains + - power-domain-names + - clocks + - clock-names + - iommus + - memory-region + - video-core0 + - video-core1 + +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-core0 { + compatible = "venus-decoder"; + }; + + video-core1 { + compatible = "venus-encoder"; + }; + + };
Signature · 2 lines
regards, Stan
PATCH v3 3/4 venus: core: add sc7180 DT compatible and resource struct
In reply to Dikshita AgarwalThis 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
@@ -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
Re: [PATCH V3 3/4] venus: core: add sc7180 DT compatible and resource struct
Hi Dikshita,
Thanks for the patch.
Quoted 6 lines · Dikshita Agarwal
This add DT compatible string and resource structure for sc7180.
Signed-off-by Dikshita Agarwal <[email protected]>--- 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@@ -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
PATCH v3 4/4 arm64: dts: sc7180: Add Venus firmware subnode
In reply to Dikshita AgarwalThis 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
@@ -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
Re: [PATCH V3 4/4] arm64: dts: sc7180: Add Venus firmware subnode
Quoted 6 lines · Dikshita Agarwal
This adds Venus firmware subnode for non-TZ platform.
Signed-off-by Dikshita Agarwal <[email protected]>--- 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@@ -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