* [PATCH V3 0/4] Enable video on sc7180 @ 2020-01-02 13:24 Dikshita Agarwal 2020-01-02 13:24 ` [PATCH V3 1/4] arm64: dts: sc7180: Add Venus video codec DT node Dikshita Agarwal ` (3 more replies) 0 siblings, 4 replies; 10+ messages in thread From: Dikshita Agarwal @ 2020-01-02 13:24 UTC (permalink / raw) To: linux-media, stanimir.varbanov, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia, Dikshita Agarwal 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 -- 1.9.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH V3 1/4] arm64: dts: sc7180: Add Venus video codec DT node 2020-01-02 13:24 [PATCH V3 0/4] Enable video on sc7180 Dikshita Agarwal @ 2020-01-02 13:24 ` Dikshita Agarwal 2020-01-07 13:52 ` Stanimir Varbanov 2020-01-02 13:24 ` [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema Dikshita Agarwal ` (2 subsequent siblings) 3 siblings, 1 reply; 10+ messages in thread From: Dikshita Agarwal @ 2020-01-02 13:24 UTC (permalink / raw) To: linux-media, stanimir.varbanov, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia, Dikshita Agarwal This adds Venus video codec DT node for sc7180. Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> --- arch/arm64/boot/dts/qcom/sc7180.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi index 3676bfd..fa849de 100644 --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi @@ -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>; -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH V3 1/4] arm64: dts: sc7180: Add Venus video codec DT node 2020-01-02 13:24 ` [PATCH V3 1/4] arm64: dts: sc7180: Add Venus video codec DT node Dikshita Agarwal @ 2020-01-07 13:52 ` Stanimir Varbanov 0 siblings, 0 replies; 10+ messages in thread From: Stanimir Varbanov @ 2020-01-07 13:52 UTC (permalink / raw) To: Dikshita Agarwal, linux-media, stanimir.varbanov, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia Hi, On 1/2/20 3:24 PM, Dikshita Agarwal wrote: > This adds Venus video codec DT node for sc7180. > > Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> > --- > arch/arm64/boot/dts/qcom/sc7180.dtsi | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi > index 3676bfd..fa849de 100644 > --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi > @@ -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"; Please, align this as you made it for clocks. > + 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. > + compatible = "venus-decoder"; > + }; > + > + video-core1 { rename to video-encoder > + compatible = "venus-encoder"; > + }; > + }; > + > pdc: interrupt-controller@b220000 { > compatible = "qcom,sc7180-pdc", "qcom,pdc"; > reg = <0 0x0b220000 0 0x30000>; > -- regards, Stan ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema 2020-01-02 13:24 [PATCH V3 0/4] Enable video on sc7180 Dikshita Agarwal 2020-01-02 13:24 ` [PATCH V3 1/4] arm64: dts: sc7180: Add Venus video codec DT node Dikshita Agarwal @ 2020-01-02 13:24 ` Dikshita Agarwal 2020-01-04 0:43 ` Rob Herring 2020-01-07 13:56 ` Stanimir Varbanov 2020-01-02 13:25 ` [PATCH V3 3/4] venus: core: add sc7180 DT compatible and resource struct Dikshita Agarwal 2020-01-02 13:25 ` [PATCH V3 4/4] arm64: dts: sc7180: Add Venus firmware subnode Dikshita Agarwal 3 siblings, 2 replies; 10+ messages in thread From: Dikshita Agarwal @ 2020-01-02 13:24 UTC (permalink / raw) To: linux-media, stanimir.varbanov, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia, Dikshita Agarwal Add new qcom,sc7180-venus DT binding schema. Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> --- .../bindings/media/qcom,venus-sc7180.yaml | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml diff --git a/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml b/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml new file mode 100644 index 0000000..b78952c --- /dev/null +++ b/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml @@ -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 <stanimir.varbanov@linaro.org> + +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"; + }; + + }; -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema 2020-01-02 13:24 ` [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema Dikshita Agarwal @ 2020-01-04 0:43 ` Rob Herring 2020-01-07 13:56 ` Stanimir Varbanov 1 sibling, 0 replies; 10+ messages in thread From: Rob Herring @ 2020-01-04 0:43 UTC (permalink / raw) To: Dikshita Agarwal Cc: linux-media, stanimir.varbanov, linux-arm-msm, devicetree, linux-kernel, vgarodia On Thu, Jan 02, 2020 at 06:54:59PM +0530, Dikshita Agarwal wrote: > Add new qcom,sc7180-venus DT binding schema. > > Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> > --- > .../bindings/media/qcom,venus-sc7180.yaml | 136 +++++++++++++++++++++ > 1 file changed, 136 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml > > diff --git a/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml b/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml > new file mode 100644 > index 0000000..b78952c > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml > @@ -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 <stanimir.varbanov@linaro.org> > + > +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. > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + maxItems: 2 > + > + power-domain-names: > + maxItems: 2 You can drop maxItems. Implied by size of 'items'. > + 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 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 > + > + 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"; Not documented. > + > + video-core0 { > + compatible = "venus-decoder"; > + }; > + > + video-core1 { > + compatible = "venus-encoder"; > + }; > + > + }; > -- > 1.9.1 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema 2020-01-02 13:24 ` [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema Dikshita Agarwal 2020-01-04 0:43 ` Rob Herring @ 2020-01-07 13:56 ` Stanimir Varbanov 1 sibling, 0 replies; 10+ messages in thread From: Stanimir Varbanov @ 2020-01-07 13:56 UTC (permalink / raw) To: Dikshita Agarwal, linux-media, stanimir.varbanov, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia Hi, On 1/2/20 3:24 PM, Dikshita Agarwal wrote: > Add new qcom,sc7180-venus DT binding schema. > > Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> > --- > .../bindings/media/qcom,venus-sc7180.yaml | 136 +++++++++++++++++++++ > 1 file changed, 136 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml > > diff --git a/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml b/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml > new file mode 100644 > index 0000000..b78952c > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/qcom,venus-sc7180.yaml > @@ -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 <stanimir.varbanov@linaro.org> > + > +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 please add required: - iommus > + > +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"; > + }; > + > + }; > -- regards, Stan ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH V3 3/4] venus: core: add sc7180 DT compatible and resource struct 2020-01-02 13:24 [PATCH V3 0/4] Enable video on sc7180 Dikshita Agarwal 2020-01-02 13:24 ` [PATCH V3 1/4] arm64: dts: sc7180: Add Venus video codec DT node Dikshita Agarwal 2020-01-02 13:24 ` [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema Dikshita Agarwal @ 2020-01-02 13:25 ` Dikshita Agarwal 2020-01-07 14:02 ` Stanimir Varbanov 2020-01-02 13:25 ` [PATCH V3 4/4] arm64: dts: sc7180: Add Venus firmware subnode Dikshita Agarwal 3 siblings, 1 reply; 10+ messages in thread From: Dikshita Agarwal @ 2020-01-02 13:25 UTC (permalink / raw) To: linux-media, stanimir.varbanov, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia, Dikshita Agarwal This add DT compatible string and resource structure for sc7180. Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> --- drivers/media/platform/qcom/venus/core.c | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c index c7525d9..194b10b9 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -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); -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH V3 3/4] venus: core: add sc7180 DT compatible and resource struct 2020-01-02 13:25 ` [PATCH V3 3/4] venus: core: add sc7180 DT compatible and resource struct Dikshita Agarwal @ 2020-01-07 14:02 ` Stanimir Varbanov 0 siblings, 0 replies; 10+ messages in thread From: Stanimir Varbanov @ 2020-01-07 14:02 UTC (permalink / raw) To: Dikshita Agarwal, linux-media, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia Hi Dikshita, Thanks for the patch. On 1/2/20 3:25 PM, Dikshita Agarwal wrote: > This add DT compatible string and resource structure for sc7180. > > Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> > --- > drivers/media/platform/qcom/venus/core.c | 45 ++++++++++++++++++++++++++++++++ > 1 file changed, 45 insertions(+) Acked-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> > > diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c > index c7525d9..194b10b9 100644 > --- a/drivers/media/platform/qcom/venus/core.c > +++ b/drivers/media/platform/qcom/venus/core.c > @@ -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); > -- regards, Stan ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH V3 4/4] arm64: dts: sc7180: Add Venus firmware subnode 2020-01-02 13:24 [PATCH V3 0/4] Enable video on sc7180 Dikshita Agarwal ` (2 preceding siblings ...) 2020-01-02 13:25 ` [PATCH V3 3/4] venus: core: add sc7180 DT compatible and resource struct Dikshita Agarwal @ 2020-01-02 13:25 ` Dikshita Agarwal 2020-01-07 14:01 ` Stanimir Varbanov 3 siblings, 1 reply; 10+ messages in thread From: Dikshita Agarwal @ 2020-01-02 13:25 UTC (permalink / raw) To: linux-media, stanimir.varbanov, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia, Dikshita Agarwal This adds Venus firmware subnode for non-TZ platform. Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> --- arch/arm64/boot/dts/qcom/sc7180-idp.dts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts index 388f50a..2f82510 100644 --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts @@ -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 { -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH V3 4/4] arm64: dts: sc7180: Add Venus firmware subnode 2020-01-02 13:25 ` [PATCH V3 4/4] arm64: dts: sc7180: Add Venus firmware subnode Dikshita Agarwal @ 2020-01-07 14:01 ` Stanimir Varbanov 0 siblings, 0 replies; 10+ messages in thread From: Stanimir Varbanov @ 2020-01-07 14:01 UTC (permalink / raw) To: Dikshita Agarwal, linux-media, stanimir.varbanov, linux-arm-msm, devicetree Cc: linux-kernel, vgarodia On 1/2/20 3:25 PM, Dikshita Agarwal wrote: > This adds Venus firmware subnode for non-TZ platform. > > Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> > --- > arch/arm64/boot/dts/qcom/sc7180-idp.dts | 6 ++++++ > 1 file changed, 6 insertions(+) Reviewed-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> > > diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts > index 388f50a..2f82510 100644 > --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts > +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts > @@ -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 { > -- regards, Stan ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-01-07 14:03 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-01-02 13:24 [PATCH V3 0/4] Enable video on sc7180 Dikshita Agarwal 2020-01-02 13:24 ` [PATCH V3 1/4] arm64: dts: sc7180: Add Venus video codec DT node Dikshita Agarwal 2020-01-07 13:52 ` Stanimir Varbanov 2020-01-02 13:24 ` [PATCH V3 2/4] dt-bindings: media: venus: Add sc7180 DT schema Dikshita Agarwal 2020-01-04 0:43 ` Rob Herring 2020-01-07 13:56 ` Stanimir Varbanov 2020-01-02 13:25 ` [PATCH V3 3/4] venus: core: add sc7180 DT compatible and resource struct Dikshita Agarwal 2020-01-07 14:02 ` Stanimir Varbanov 2020-01-02 13:25 ` [PATCH V3 4/4] arm64: dts: sc7180: Add Venus firmware subnode Dikshita Agarwal 2020-01-07 14:01 ` Stanimir Varbanov
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).