2021-06-02 15:22:58

by Dikshita Agarwal

[permalink] [raw]
Subject: [PATCH v2] arm64: dts: qcom: sc7280: Add venus DT node

Add DT entries for the sc7280 venus encoder/decoder.

Co-developed-by: Mansur Alisha Shaik <[email protected]>
Signed-off-by: Dikshita Agarwal <[email protected]>

change since v1:
- added rpmh power domain and opp table.
---
arch/arm64/boot/dts/qcom/sc7280.dtsi | 75 ++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 4c44a52..4982f96 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -60,6 +60,11 @@
no-map;
reg = <0x0 0x80b00000 0x0 0x100000>;
};
+
+ video_mem: memory@8b200000 {
+ reg = <0x0 0x8b200000 0x0 0x500000>;
+ no-map;
+ };
};

cpus {
@@ -850,6 +855,76 @@
interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
};

+ venus: video-codec@0aa00000 {
+ 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-460000000 {
+ opp-hz = /bits/ 64 <460000000>;
+ required-opps = <&rpmhpd_opp_turbo>;
+ };
+ };
+
+ };
+
videocc: clock-controller@aaf0000 {
compatible = "qcom,sc7280-videocc";
reg = <0 0xaaf0000 0 0x10000>;
--
2.7.4


2021-06-02 20:23:03

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH v2] arm64: dts: qcom: sc7280: Add venus DT node

Hi Dikshita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on next-20210602]
[cannot apply to robh/for-next v5.13-rc4 v5.13-rc3 v5.13-rc2 v5.13-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Dikshita-Agarwal/arm64-dts-qcom-sc7280-Add-venus-DT-node/20210602-232320
base: ed5d0667a6540293c9485dd95babb5f1e241226a
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/457ce86a1cc3759fba559a6f290fec581d5f1e1b
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Dikshita-Agarwal/arm64-dts-qcom-sc7280-Add-venus-DT-node/20210602-232320
git checkout 457ce86a1cc3759fba559a6f290fec581d5f1e1b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

>> Error: arch/arm64/boot/dts/qcom/sc7280.dtsi:993.23-24 syntax error
FATAL ERROR: Unable to parse input tree

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (1.65 kB)
.config.gz (76.16 kB)
Download all attachments

2021-06-02 20:48:08

by Stanimir Varbanov

[permalink] [raw]
Subject: Re: [PATCH v2] arm64: dts: qcom: sc7280: Add venus DT node



On 6/2/21 6:20 PM, Dikshita Agarwal wrote:
> Add DT entries for the sc7280 venus encoder/decoder.
>
> Co-developed-by: Mansur Alisha Shaik <[email protected]>
> Signed-off-by: Dikshita Agarwal <[email protected]>
>
> change since v1:
> - added rpmh power domain and opp table.
> ---
> arch/arm64/boot/dts/qcom/sc7280.dtsi | 75 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 75 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> index 4c44a52..4982f96 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> @@ -60,6 +60,11 @@
> no-map;
> reg = <0x0 0x80b00000 0x0 0x100000>;
> };
> +
> + video_mem: memory@8b200000 {
> + reg = <0x0 0x8b200000 0x0 0x500000>;
> + no-map;
> + };
> };
>
> cpus {
> @@ -850,6 +855,76 @@
> interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
> };
>
> + venus: video-codec@0aa00000 {
> + 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>;
> + };

The assumption for all Qualcomm SoCs was that the firmware will be
loaded by TZ, i.e. the platform has TZ firmware. I'd like to continue on
that assumption, and propose to move video-firmware subnode into
appropriate board dts file, in this case sc7280-idp.dts.

--
regards,
Stan