diff mbox series

[v3,1/2] arm64: dts: rockchip: Add Hantro G1 VPU support for RK3588

Message ID 20231231151112.3994194-2-liujianfeng1994@gmail.com (mailing list archive)
State New, archived
Headers show
Series Add hantro g1 video decoder support for RK3588 | expand

Commit Message

Jianfeng Liu Dec. 31, 2023, 3:11 p.m. UTC
This patch enables Hantro G1 video decoder in RK3588's
devicetree.

Tested with FFmpeg v4l2_request code taken from [1]
with MPEG2, H.264 and VP8 samples.

[1] https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch

Signed-off-by: Jianfeng Liu <liujianfeng1994@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

Comments

Nicolas Dufresne Jan. 17, 2024, 7:13 p.m. UTC | #1
Hi Jianfeng,

Le dimanche 31 décembre 2023 à 23:11 +0800, Jianfeng Liu a écrit :
> This patch enables Hantro G1 video decoder in RK3588's
> devicetree.
> 
> Tested with FFmpeg v4l2_request code taken from [1]
> with MPEG2, H.264 and VP8 samples.

In general, we ask submitters to share a fluster [0] score (this is just to
demonstrate that the integration has been well validated). LibreELEC community
have patch to enable this ffmpeg fork. I don't expect any surprise here, and you
can just reply to my email here.

Alternatively, this test tool is shipped in latest Debian, and with the
appropriate GStreamer packages you'll be able to run the VP8 and H.264 tests.

Nicolas

[0] https://github.com/fluendo/fluster

> 
> [1] https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/multimedia/ffmpeg/patches/v4l2-request/ffmpeg-001-v4l2-request.patch
> 
> Signed-off-by: Jianfeng Liu <liujianfeng1994@gmail.com>
> ---
>  arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> index 5fb0baf8a..ab2792162 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> @@ -640,6 +640,26 @@ i2c0: i2c@fd880000 {
>  		status = "disabled";
>  	};
>  
> +	vpu: video-codec@fdb50000 {
> +		compatible = "rockchip,rk3588-vpu", "rockchip,rk3568-vpu";
> +		reg = <0x0 0xfdb50000 0x0 0x800>;
> +		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
> +		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
> +		clock-names = "aclk", "hclk";
> +		iommus = <&vdpu_mmu>;
> +		power-domains = <&power RK3588_PD_VDPU>;
> +	};
> +
> +	vdpu_mmu: iommu@fdb50800 {
> +		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
> +		reg = <0x0 0xfdb50800 0x0 0x40>;
> +		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
> +		clock-names = "aclk", "iface";
> +		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
> +		power-domains = <&power RK3588_PD_VDPU>;
> +		#iommu-cells = <0>;
> +	};
> +
>  	vop: vop@fdd90000 {
>  		compatible = "rockchip,rk3588-vop";
>  		reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
Jianfeng Liu Jan. 18, 2024, 8:06 a.m. UTC | #2
Hi Nicolas,

Wed, 17 Jan 2024 14:13:19 -0500, Nicolas Dufresne wrote:
>In general, we ask submitters to share a fluster [0] score (this is just to
>demonstrate that the integration has been well validated). LibreELEC community
>have patch to enable this ffmpeg fork. I don't expect any surprise here, and you
>can just reply to my email here.

Here are fluster test result with ffmpeg v6.0 patched with v4l2 request patches
from LibreELEC and gstreamer 1.22:
https://gist.github.com/amazingfate/1675389df382ff266d6f1318fd4675fd

I am using Kwiboo's fluster fork[1] to run ffmpeg v4l2 request tests

Jianfeng

[1] https://github.com/Kwiboo/fluster/tree/v4l2-request
Nicolas Dufresne Jan. 18, 2024, 9:44 p.m. UTC | #3
Le jeudi 18 janvier 2024 à 16:06 +0800, amazingfate a écrit :
> Hi Nicolas,
> 
> Wed, 17 Jan 2024 14:13:19 -0500, Nicolas Dufresne wrote:
> > In general, we ask submitters to share a fluster [0] score (this is just to
> > demonstrate that the integration has been well validated). LibreELEC community
> > have patch to enable this ffmpeg fork. I don't expect any surprise here, and you
> > can just reply to my email here.
> 
> Here are fluster test result with ffmpeg v6.0 patched with v4l2 request patches
> from LibreELEC and gstreamer 1.22:
> https://gist.github.com/amazingfate/1675389df382ff266d6f1318fd4675fd
> 
> I am using Kwiboo's fluster fork[1] to run ffmpeg v4l2 request tests

Thank you very much, these are the expected results for this HW, indicating
everything works as expected.

Nicolas

> 
> Jianfeng
> 
> [1] https://github.com/Kwiboo/fluster/tree/v4l2-request
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
index 5fb0baf8a..ab2792162 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
@@ -640,6 +640,26 @@  i2c0: i2c@fd880000 {
 		status = "disabled";
 	};
 
+	vpu: video-codec@fdb50000 {
+		compatible = "rockchip,rk3588-vpu", "rockchip,rk3568-vpu";
+		reg = <0x0 0xfdb50000 0x0 0x800>;
+		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+		clock-names = "aclk", "hclk";
+		iommus = <&vdpu_mmu>;
+		power-domains = <&power RK3588_PD_VDPU>;
+	};
+
+	vdpu_mmu: iommu@fdb50800 {
+		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+		reg = <0x0 0xfdb50800 0x0 0x40>;
+		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+		clock-names = "aclk", "iface";
+		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+		power-domains = <&power RK3588_PD_VDPU>;
+		#iommu-cells = <0>;
+	};
+
 	vop: vop@fdd90000 {
 		compatible = "rockchip,rk3588-vop";
 		reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;