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 -- 1.9.1
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..6ecacca 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-decoder { + compatible = "venus-decoder"; + }; + + video-encoder { + compatible = "venus-encoder"; + }; + }; + pdc: interrupt-controller@b220000 { compatible = "qcom,sc7180-pdc", "qcom,pdc"; reg = <0 0x0b220000 0 0x30000>; -- 1.9.1
Add new qcom,sc7180-venus DT binding schema. Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> --- .../bindings/media/qcom,sc7180-venus.yaml | 144 +++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml diff --git a/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml new file mode 100644 index 0000000..7b6a8fb --- /dev/null +++ b/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml @@ -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 <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: + 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"; + }; + }; -- 1.9.1
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
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
Hi, On 1/14/20 2:53 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(+) Reviewed-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> > > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi > index 3676bfd..6ecacca 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-decoder { > + compatible = "venus-decoder"; > + }; > + > + video-encoder { > + compatible = "venus-encoder"; > + }; > + }; > + > pdc: interrupt-controller@b220000 { > compatible = "qcom,sc7180-pdc", "qcom,pdc"; > reg = <0 0x0b220000 0 0x30000>; > -- regards, Stan
Hi, On 1/14/20 2:53 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
Hi, On 1/14/20 2:53 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
On Tue, Jan 14, 2020 at 6:54 AM Dikshita Agarwal
<dikshita@codeaurora.org> wrote:
>
> Add new qcom,sc7180-venus DT binding schema.
>
> Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
> ---
> .../bindings/media/qcom,sc7180-venus.yaml | 144 +++++++++++++++++++++
> 1 file changed, 144 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
Reviewed-by: Rob Herring <robh@kernel.org>
On Tue 14 Jan 04:53 PST 2020, Dikshita Agarwal wrote: > 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 > Picked up the dts patches for 5.7, with Stan's acks Regards, Bjorn > [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 > > -- > 1.9.1 >
Hi Bjorn,
On Mon, Feb 03, 2020 at 10:02:40AM -0800, Bjorn Andersson wrote:
> On Tue 14 Jan 04:53 PST 2020, Dikshita Agarwal wrote:
>
> > 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
> >
>
> 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
On Thu 13 Feb 10:53 PST 2020, Matthias Kaehlcke wrote: > Hi Bjorn, > > On Mon, Feb 03, 2020 at 10:02:40AM -0800, Bjorn Andersson wrote: > > On Tue 14 Jan 04:53 PST 2020, Dikshita Agarwal wrote: > > > > > 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 > > > > > > > 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/1577782737-32068-1-git-send-email-okukatla@codeaurora.org/ to get this settled. Regards, Bjorn
On Thu, Feb 13, 2020 at 11:26:27AM -0800, Bjorn Andersson wrote: > On Thu 13 Feb 10:53 PST 2020, Matthias Kaehlcke wrote: > > > Hi Bjorn, > > > > On Mon, Feb 03, 2020 at 10:02:40AM -0800, Bjorn Andersson wrote: > > > On Tue 14 Jan 04:53 PST 2020, Dikshita Agarwal wrote: > > > > > > > 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 > > > > > > > > > > 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. Now that you say it, I also stumbled across this at some point ... > Seems we're waiting for rather trivial respin of > https://lore.kernel.org/linux-arm-msm/1577782737-32068-1-git-send-email-okukatla@codeaurora.org/ > to get this settled. Thanks for the clarification!
On Thu, Feb 13, 2020 at 11:26:27AM -0800, Bjorn Andersson wrote: > On Thu 13 Feb 10:53 PST 2020, Matthias Kaehlcke wrote: > > > Hi Bjorn, > > > > On Mon, Feb 03, 2020 at 10:02:40AM -0800, Bjorn Andersson wrote: > > > On Tue 14 Jan 04:53 PST 2020, Dikshita Agarwal wrote: > > > > > > > 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 > > > > > > > > > > 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/1577782737-32068-1-git-send-email-okukatla@codeaurora.org/ > 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?
On Thu 13 Feb 11:57 PST 2020, Matthias Kaehlcke wrote: > On Thu, Feb 13, 2020 at 11:26:27AM -0800, Bjorn Andersson wrote: > > On Thu 13 Feb 10:53 PST 2020, Matthias Kaehlcke wrote: > > > > > Hi Bjorn, > > > > > > On Mon, Feb 03, 2020 at 10:02:40AM -0800, Bjorn Andersson wrote: > > > > On Tue 14 Jan 04:53 PST 2020, Dikshita Agarwal wrote: > > > > > > > > > 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 > > > > > > > > > > > > > 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/1577782737-32068-1-git-send-email-okukatla@codeaurora.org/ > > 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. > 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
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. On 1/14/20 2:53 PM, Dikshita Agarwal wrote: > Add new qcom,sc7180-venus DT binding schema. > > Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> > Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> > --- > .../bindings/media/qcom,sc7180-venus.yaml | 144 +++++++++++++++++++++ > 1 file changed, 144 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml > > diff --git a/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml > new file mode 100644 > index 0000000..7b6a8fb > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml > @@ -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 <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: > + 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"; > + }; > + }; > -- regards, Stan