linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 01/03]: media: hantro: Add support for Hantro G1 on RK356x
@ 2022-02-13 17:13 Piotr Oniszczuk
  2022-02-13 17:13 ` [PATCH v1 02/03]: arm64: dts: rk356x.dtsi: " Piotr Oniszczuk
  2022-02-13 17:13 ` [PATCH v1 03/03]: dt-bindings: media: rockchip-vpu: Add RK3568 compatible Piotr Oniszczuk
  0 siblings, 2 replies; 4+ messages in thread
From: Piotr Oniszczuk @ 2022-02-13 17:13 UTC (permalink / raw)
  To: linux-media; +Cc: Piotr Oniszczuk

From: Piotr Oniszczuk <piotr.oniszczuk@gmail.com>

RK356x has Hantro G1 video decoder capable to decode MPEG2/H.264/VP9
video formats.

This patch adds support for RK356x family in existing Hantro
video decoder kernel driver.

Tested on [1] with FFmpeg v4l2_request code taken from [2]
with MPEG2, H.642 and VP8 samples with results [3].

[1] https://github.com/warpme/minimyth2
[2] https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch
[3] https://github.com/warpme/minimyth2/blob/master/video-test-summary.txt

Signed-off-by: Piotr Oniszczuk <piotr.oniszczuk@gmail.com>
---
 drivers/staging/media/hantro/hantro_drv.c      |  1 +
 drivers/staging/media/hantro/hantro_hw.h       |  1 +
 drivers/staging/media/hantro/rockchip_vpu_hw.c | 14 ++++++++++++++
 3 files changed, 16 insertions(+)

diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c
index 6a51f39dde56..ac7d58069eb8 100644
--- a/drivers/staging/media/hantro/hantro_drv.c
+++ b/drivers/staging/media/hantro/hantro_drv.c
@@ -613,6 +613,7 @@ static const struct of_device_id of_hantro_match[] = {
 	{ .compatible = "rockchip,rk3288-vpu", .data = &rk3288_vpu_variant, },
 	{ .compatible = "rockchip,rk3328-vpu", .data = &rk3328_vpu_variant, },
 	{ .compatible = "rockchip,rk3399-vpu", .data = &rk3399_vpu_variant, },
+	{ .compatible = "rockchip,rk3568-vpu", .data = &rk3568_vpu_variant, },
 #endif
 #ifdef CONFIG_VIDEO_HANTRO_IMX8M
 	{ .compatible = "nxp,imx8mq-vpu", .data = &imx8mq_vpu_variant, },
diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/staging/media/hantro/hantro_hw.h
index 4a19ae8940b9..89ec6d500938 100644
--- a/drivers/staging/media/hantro/hantro_hw.h
+++ b/drivers/staging/media/hantro/hantro_hw.h
@@ -307,6 +307,7 @@ extern const struct hantro_variant rk3066_vpu_variant;
 extern const struct hantro_variant rk3288_vpu_variant;
 extern const struct hantro_variant rk3328_vpu_variant;
 extern const struct hantro_variant rk3399_vpu_variant;
+extern const struct hantro_variant rk3568_vpu_variant;
 extern const struct hantro_variant sama5d4_vdec_variant;
 extern const struct hantro_variant sunxi_vpu_variant;
 
diff --git a/drivers/staging/media/hantro/rockchip_vpu_hw.c b/drivers/staging/media/hantro/rockchip_vpu_hw.c
index c203b606e6e7..5e64cf068ff9 100644
--- a/drivers/staging/media/hantro/rockchip_vpu_hw.c
+++ b/drivers/staging/media/hantro/rockchip_vpu_hw.c
@@ -551,6 +551,20 @@ const struct hantro_variant rk3399_vpu_variant = {
 	.num_clocks = ARRAY_SIZE(rockchip_vpu_clk_names)
 };
 
+const struct hantro_variant rk3568_vpu_variant = {
+	.dec_offset = 0x400,
+	.dec_fmts = rk3399_vpu_dec_fmts,
+	.num_dec_fmts = ARRAY_SIZE(rk3399_vpu_dec_fmts),
+	.codec = HANTRO_MPEG2_DECODER |
+		 HANTRO_VP8_DECODER | HANTRO_H264_DECODER,
+	.codec_ops = rk3399_vpu_codec_ops,
+	.irqs = rockchip_vdpu2_irqs,
+	.num_irqs = ARRAY_SIZE(rockchip_vdpu2_irqs),
+	.init = rockchip_vpu_hw_init,
+	.clk_names = rockchip_vpu_clk_names,
+	.num_clocks = ARRAY_SIZE(rockchip_vpu_clk_names)
+};
+
 const struct hantro_variant px30_vpu_variant = {
 	.enc_offset = 0x0,
 	.enc_fmts = rockchip_vpu_enc_fmts,
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v1 02/03]: arm64: dts: rk356x.dtsi: Add support for Hantro G1 on RK356x
  2022-02-13 17:13 [PATCH v1 01/03]: media: hantro: Add support for Hantro G1 on RK356x Piotr Oniszczuk
@ 2022-02-13 17:13 ` Piotr Oniszczuk
  2022-02-14 11:51   ` Ezequiel Garcia
  2022-02-13 17:13 ` [PATCH v1 03/03]: dt-bindings: media: rockchip-vpu: Add RK3568 compatible Piotr Oniszczuk
  1 sibling, 1 reply; 4+ messages in thread
From: Piotr Oniszczuk @ 2022-02-13 17:13 UTC (permalink / raw)
  To: linux-media; +Cc: Piotr Oniszczuk

    From: Piotr Oniszczuk <piotr.oniszczuk@gmail.com>

    RK356x has Hantro G1 video decoder capable to decode MPEG2/H.264/VP9
    video formats.

    This patch enables RK356x video decoder in RK356x device-tree
    include.

    Tested on [1] with FFmpeg v4l2_request code taken from [2]
    with MPEG2, H.642 and VP8 samples with results [3].

    [1] https://github.com/warpme/minimyth2
    [2] https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch
    [3] https://github.com/warpme/minimyth2/blob/master/video-test-summary.txt

    Signed-off-by: Piotr Oniszczuk <piotr.oniszczuk@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk356x.dtsi | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
index a68033a23975..ae5d80c5ba64 100644
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
@@ -390,6 +390,28 @@ power-domain@RK3568_PD_RKVENC {
 		};
 	};
 
+	vpu: video-codec@fdea0400 {
+		compatible = "rockchip,rk3568-vpu";
+		reg = <0x0 0xfdea0000 0x0 0x800>;
+		interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "vdpu";
+		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+		clock-names = "aclk", "hclk";
+		iommus = <&vdpu_mmu>;
+		power-domains = <&power RK3568_PD_VPU>;
+	};
+
+	vdpu_mmu: iommu@fdea0800 {
+		compatible = "rockchip,rk3568-iommu";
+		reg = <0x0 0xfdea0800 0x0 0x40>;
+		interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "vdpu_mmu";
+		clock-names = "aclk", "iface";
+		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+		power-domains = <&power RK3568_PD_VPU>;
+		#iommu-cells = <0>;
+	};
+
 	sdmmc2: mmc@fe000000 {
 		compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
 		reg = <0x0 0xfe000000 0x0 0x4000>;
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v1 03/03]: dt-bindings: media: rockchip-vpu: Add RK3568 compatible
  2022-02-13 17:13 [PATCH v1 01/03]: media: hantro: Add support for Hantro G1 on RK356x Piotr Oniszczuk
  2022-02-13 17:13 ` [PATCH v1 02/03]: arm64: dts: rk356x.dtsi: " Piotr Oniszczuk
@ 2022-02-13 17:13 ` Piotr Oniszczuk
  1 sibling, 0 replies; 4+ messages in thread
From: Piotr Oniszczuk @ 2022-02-13 17:13 UTC (permalink / raw)
  To: linux-media; +Cc: Piotr Oniszczuk

        From: Piotr Oniszczuk <piotr.oniszczuk@gmail.com>

        RK356x has Hantro G1 video decoder capable to decode MPEG2/H.264/VP9
        video formats.

        This patch adds RK3568 compatible in rockchip-vpu dt-bindings.

        Tested on [1] with FFmpeg v4l2_request code taken from [2]
        with MPEG2, H.642 and VP8 samples with results [3].

        [1] https://github.com/warpme/minimyth2
        [2] https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch
        [3] https://github.com/warpme/minimyth2/blob/master/video-test-summary.txt

        Signed-off-by: Piotr Oniszczuk <piotr.oniszczuk@gmail.com>
---
 Documentation/devicetree/bindings/media/rockchip-vpu.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/media/rockchip-vpu.yaml b/Documentation/devicetree/bindings/media/rockchip-vpu.yaml
index bacb60a34989..6cc4d3e5a61d 100644
--- a/Documentation/devicetree/bindings/media/rockchip-vpu.yaml
+++ b/Documentation/devicetree/bindings/media/rockchip-vpu.yaml
@@ -23,6 +23,7 @@ properties:
           - rockchip,rk3328-vpu
           - rockchip,rk3399-vpu
           - rockchip,px30-vpu
+          - rockchip,rk3568-vpu
       - items:
           - const: rockchip,rk3188-vpu
           - const: rockchip,rk3066-vpu
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v1 02/03]: arm64: dts: rk356x.dtsi: Add support for Hantro G1 on RK356x
  2022-02-13 17:13 ` [PATCH v1 02/03]: arm64: dts: rk356x.dtsi: " Piotr Oniszczuk
@ 2022-02-14 11:51   ` Ezequiel Garcia
  0 siblings, 0 replies; 4+ messages in thread
From: Ezequiel Garcia @ 2022-02-14 11:51 UTC (permalink / raw)
  To: Piotr Oniszczuk; +Cc: linux-media

Hi Piotr,

Thanks for your patch.

On Sun, Feb 13, 2022 at 06:13:50PM +0100, Piotr Oniszczuk wrote:
>     From: Piotr Oniszczuk <piotr.oniszczuk@gmail.com>
> 

Please change the commit title to "arm64: dts: rockchip: Add VPU support for RK3568/RK3566".
Also, note that the commit description got some extra indentation.

>     RK356x has Hantro G1 video decoder capable to decode MPEG2/H.264/VP9
>     video formats.
> 

s/VP9/VP8

>     This patch enables RK356x video decoder in RK356x device-tree
>     include.
> 
>     Tested on [1] with FFmpeg v4l2_request code taken from [2]
>     with MPEG2, H.642 and VP8 samples with results [3].
> 
>     [1] https://github.com/warpme/minimyth2
>     [2] https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch
>     [3] https://github.com/warpme/minimyth2/blob/master/video-test-summary.txt
> 
>     Signed-off-by: Piotr Oniszczuk <piotr.oniszczuk@gmail.com>
> ---
>  arch/arm64/boot/dts/rockchip/rk356x.dtsi | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> index a68033a23975..ae5d80c5ba64 100644
> --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> @@ -390,6 +390,28 @@ power-domain@RK3568_PD_RKVENC {
>  		};
>  	};
>  
> +	vpu: video-codec@fdea0400 {
> +		compatible = "rockchip,rk3568-vpu";
> +		reg = <0x0 0xfdea0000 0x0 0x800>;
> +		interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
> +		interrupt-names = "vdpu";

Please remove the interrupt-names, given there is only one interrupt line.

> +		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
> +		clock-names = "aclk", "hclk";
> +		iommus = <&vdpu_mmu>;
> +		power-domains = <&power RK3568_PD_VPU>;
> +	};
> +
> +	vdpu_mmu: iommu@fdea0800 {
> +		compatible = "rockchip,rk3568-iommu";
> +		reg = <0x0 0xfdea0800 0x0 0x40>;
> +		interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
> +		interrupt-names = "vdpu_mmu";

Same here.

Thanks,
Ezequiel

> +		clock-names = "aclk", "iface";
> +		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
> +		power-domains = <&power RK3568_PD_VPU>;
> +		#iommu-cells = <0>;
> +	};
> +
>  	sdmmc2: mmc@fe000000 {
>  		compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
>  		reg = <0x0 0xfe000000 0x0 0x4000>;
> -- 
> 2.29.2
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-02-14 11:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-13 17:13 [PATCH v1 01/03]: media: hantro: Add support for Hantro G1 on RK356x Piotr Oniszczuk
2022-02-13 17:13 ` [PATCH v1 02/03]: arm64: dts: rk356x.dtsi: " Piotr Oniszczuk
2022-02-14 11:51   ` Ezequiel Garcia
2022-02-13 17:13 ` [PATCH v1 03/03]: dt-bindings: media: rockchip-vpu: Add RK3568 compatible Piotr Oniszczuk

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).