Three patches from D.V.A.B. Sarma adding VP9 decode support to the VDPU381 variant of rkvdec (RK3588 generation). Combined ~1500 LOC, 5 new files in drivers/media/platform/rockchip/rkvdec/. Provenance: github.com/dvab-sarma/android_kernel_rk_opi branch add-rkvdec-vdpu381-vp9-v8. Collabora's blog cites the work but it hasn't reached linux-media patchwork yet (Collabora: "v1 series needs to be sent for review soon"). Casanova's underlying VDPU381/VDPU383 H.264+HEVC base IS in mainline 7.0 release. Tested by author on Orange Pi 5 Pro (RK3588) with AOSP 16 + FFMPEG, Profile 0 + Profile 2. Tested in our fleet 2026-05-18: cherry-picks cleanly on top of ampere-minimal-devices, full kernel build (KERNELRELEASE 7.0.0-rc3-vp9-test+) succeeds clean with GCC 16.1.1. Image + DTB + modules + initramfs installed under -vp9-test+ suffix on ampere without touching the running -devices+ kernel; new extlinux label arch_vp9_test added (default unchanged at arch_devices). End-to-end VP9 decode verification pending operator reboot into the new label. Patches NOT yet referenced from fleet/ampere.yaml — that bump is the operator's call (manifest preamble currently scopes VP9 out per issue #6). Once verified, ampere.yaml can add these three under the scope-tagged patch list in apply order 0001→0002→0003. Cross-reference: marfrit/kernel-agent#12.
3.4 KiB
patches/driver/media/
Scope-tagged kernel-agent patches that touch drivers/media/ — third-party
video-codec enablement work that hasn't reached linux-media patchwork as
formal series yet, but is empirically known to work on our test hardware.
0001..0003 — Sarma's VP9 enablement on VDPU381 (RK3588 rkvdec)
Three patches from D.V.A.B. Sarma <vdarbha0473@gmail.com> adding VP9
decode support to the VDPU381 variant of rkvdec (the RK3588 generation).
| # | Subject | LOC | What |
|---|---|---|---|
| 0001 | rkvdec/vp9: rename get_ref_buf to get_ref_buf_vp9 | 10 | rename existing helper to avoid namespace collision with the upcoming HEVC equivalent |
| 0002 | rkvdec: move vp9 functions to common file | 172 | extract VP9 plumbing into rkvdec-vp9-common.{c,h} so VDPU381 can share with the older RK3399 backend |
| 0003 | rkvdec: add VP9 support for VDPU381 variant | 1303 | the actual VDPU381 VP9 backend — register defs + rkvdec-vdpu381-vp9.c + glue |
Combined: ~1500 LOC, 5 new files in drivers/media/platform/rockchip/rkvdec/.
Upstream provenance
- Author maintains the work at https://github.com/dvab-sarma/android_kernel_rk_opi
branch
add-rkvdec-vdpu381-vp9-v8. - Collabora's blog post on RK3588/RK3576 video decoder mainline merge cites the work but notes "v1 series needs to be sent for review soon" — i.e. not yet on linux-media patchwork, no upstream timeline.
- Casanova's VDPU381+VDPU383 H.264/HEVC base (which these patches sit on top of) IS in mainline 7.0 release.
- Patches do NOT modify any of our scope-tagged board / module / soc / subsystem code paths — purely additive to the upstream rkvdec subdirectory.
Tested on
- Author: Orange Pi 5 Pro board (RK3588), AOSP 16 + FFMPEG, Profile 0 + Profile 2
- Our fleet: build verified clean on
ampere(CoolPi CM5 GenBook, RK3588) 2026-05-18 with KERNELRELEASE7.0.0-rc3-vp9-test+(base = running7.0.0-rc3-devices+config + LOCALVERSION change + these 3 patches + the pre-existing issue14 vb2-resv local mods). Full kernel image- DTB + modules + initramfs land at
/boot/firmware/*-7.0.0-rc3-vp9-test+and/lib/modules/7.0.0-rc3-vp9-test+. New extlinux labelarch_vp9_testadded without touching defaultarch_devices. End-to-end VP9 decode validation requires booting intoarch_vp9_test(pending operator confirmation, thenv4l2-ctl -d /dev/video1 --list-formats-outshould listVP9FalongsideS265+S264).
- DTB + modules + initramfs land at
Apply order
Strict — 0001 → 0002 → 0003. 0003 depends on the common-file refactor from 0002, which depends on the helper rename in 0001.
Removal criteria
Drop these patches when:
- Sarma sends a v1 series to linux-media and it lands upstream — adopt the upstream version at the next baseline bump, OR
- Collabora produces an alternative VP9 enablement on their own hardware-enablement/rockchip-3588 GitLab tree — prefer that lineage (more likely to land cleanly upstream).
How to use in a kernel-agent build
If fleet/ampere.yaml is bumped to include VP9 (currently scope-out per
the manifest preamble — "Asks #2 (VP9 enablement on RK3588 rkvdec) and
#3 (AV1 dec integration) from issue #6 are NOT addressed in this
manifest — tracked separately"), reference these three files in apply
order under the manifest's scope-tagged patch list.
Cross-references: marfrit/kernel-agent#12 (the VP9-on-ampere enablement
issue).