.../bindings/media/rockchip,vdec.yaml | 2 + arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 49 +++++++++ .../media/platform/rockchip/rkvdec/rkvdec.c | 103 ++++++++++++++++++ 3 files changed, 154 insertions(+)
This series depends upon Detlev Casanova's current v7 series for VDPU381 and VDPU383 support [0]. It adds support for the VDPU346 IP block used for H264, HEVC and (in active work) VP9 on the RK356X boards. VDPU346 appears to be a close relation to VDPU381 used with RK3588, except with a single core, output limited to 4K, and minor feature differences, e.g. HEVC level 5.1 on VDPU346 vs 6.1 on VDPU381. To handle differences we declare a new compatible. The device-tree changes are derived from prior-art in Detlev's patches for RK3576 and RK3588, the vendor kernel [1], and some earlier patch attempts from Piotr Oniszczuk and Diederik de Haas. The register differences between VDPU346 and VDPU381 appear to be minimal so we currently and intentionally reuse the VDPU381 h264, hevc, and regs files to avoid duplicating code. There is some evidence of buffer size changes in testing which still need to be explored. If further register analysis needs separate files for VDPU346 the refactoring will be beyond my current n00b coding skills and I will either need some coaching or would be happy to pass the series over to a more experienced developer. NB: Testing with the v1 series showed lower mbps bitrate performance. This appears to be resolved though it's unclear to me whether this results from kernel changes or the ongoing reworking of ffmpeg v4l2_request support [2]. However with my current Linux 6.19-rc2 test branch [3] I'm now able to play Jellyfish H264 and HEVC test media over 100mbps. Changes since v1: - Drop DO-NOT-MERGE patch as changes included in Detvlev v7 series - Adapt to variant/capability changes in Detlev's v7 series - Add bindings ack from Rob - Add rkvdec ack from Nicolas - Rebase against Linux 6.19-rc2 [0] https://patchwork.kernel.org/project/linux-rockchip/list/?series=1034794 [1] https://github.com/rockchip-linux/kernel/blob/develop-6.6/arch/arm64/boot/dts/rockchip/rk356x.dtsi#L1539 [2] https://code.ffmpeg.org/Kwiboo/FFmpeg/commits/branch/v4l2request-v3 [3] https://github.com/chewitt/linux/commits/rockchip-6.19.y Christian Hewitt (3): media: dt-bindings: rockchip: Add RK3568 Video Decoder bindings media: rkvdec: Add support for the VDPU346 variant arm64: dts: rockchip: Add the vdpu346 Video Decoders on RK356X .../bindings/media/rockchip,vdec.yaml | 2 + arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 49 +++++++++ .../media/platform/rockchip/rkvdec/rkvdec.c | 103 ++++++++++++++++++ 3 files changed, 154 insertions(+) -- 2.34.1
Hi Christian, On Friday, December 26, 2025 11:31:37 AM Coordinated Universal Time Christian Hewitt wrote: > This series depends upon Detlev Casanova's current v7 series for VDPU381 and > VDPU383 support [0]. It adds support for the VDPU346 IP block used for > H264, HEVC and (in active work) VP9 on the RK356X boards. VDPU346 appears > to be a close relation to VDPU381 used with RK3588, except with a single > core, output limited to 4K, and minor feature differences, e.g. HEVC level > 5.1 on VDPU346 vs 6.1 on VDPU381. To handle differences we declare a new > compatible. > > The device-tree changes are derived from prior-art in Detlev's patches for > RK3576 and RK3588, the vendor kernel [1], and some earlier patch attempts > from Piotr Oniszczuk and Diederik de Haas. > > The register differences between VDPU346 and VDPU381 appear to be minimal so > we currently and intentionally reuse the VDPU381 h264, hevc, and regs files > to avoid duplicating code. There is some evidence of buffer size changes in > testing which still need to be explored. If further register analysis needs > separate files for VDPU346 the refactoring will be beyond my current n00b > coding skills and I will either need some coaching or would be happy to > pass the series over to a more experienced developer. > > NB: Testing with the v1 series showed lower mbps bitrate performance. This > appears to be resolved though it's unclear to me whether this results from > kernel changes or the ongoing reworking of ffmpeg v4l2_request support [2]. > However with my current Linux 6.19-rc2 test branch [3] I'm now able to play > Jellyfish H264 and HEVC test media over 100mbps. > > Changes since v1: > - Drop DO-NOT-MERGE patch as changes included in Detvlev v7 series > - Adapt to variant/capability changes in Detlev's v7 series > - Add bindings ack from Rob > - Add rkvdec ack from Nicolas > - Rebase against Linux 6.19-rc2 > > [0] https://patchwork.kernel.org/project/linux-rockchip/list/?series=1034794 > [1] > https://github.com/rockchip-linux/kernel/blob/develop-6.6/arch/arm64/boot/d > ts/rockchip/rk356x.dtsi#L1539 [2] > https://code.ffmpeg.org/Kwiboo/FFmpeg/commits/branch/v4l2request-v3 [3] > https://github.com/chewitt/linux/commits/rockchip-6.19.y > > Christian Hewitt (3): > media: dt-bindings: rockchip: Add RK3568 Video Decoder bindings > media: rkvdec: Add support for the VDPU346 variant > arm64: dts: rockchip: Add the vdpu346 Video Decoders on RK356X > > .../bindings/media/rockchip,vdec.yaml | 2 + > arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 49 +++++++++ > .../media/platform/rockchip/rkvdec/rkvdec.c | 103 ++++++++++++++++++ > 3 files changed, 154 insertions(+) I tested this patch series on my RK3566 board with my own test videos and BBB (1080p60 and 4k30) using mpv with [1] patchset. The command I used was: `mpv --vo=dmabuf-wayland --hwdec=v4l2request input_file.mp4` Both H264 and HEVC plays with minor framedrops (which to me isn't noticeable). You can add my Tested-by: Tested-by: Dang Huynh <dang.huynh@mainlining.org> [1]: https://github.com/mpv-player/mpv/pull/14690 Best regards, Dang
© 2016 - 2026 Red Hat, Inc.