[PATCH RFC 00/10] media: qcom: venus: add MSM8939 support

Erikas Bitovtas
2026-04-16T13:44:06Z

This patch series adds support for Venus on MSM8939. It is mostly
similar to MSM8916 Venus, except it needs two additional cores to be
powered on before it can start decoding.

This patch series is marked as an RFC. Before submitting a non-RFC
series, I would like to have some details clarified regarding how Venus
works in order to improve and eventually upstream support for MSM8939.

1. In downstream, particularly in LA.BR.1.2.9.1_rb1.5, the buses
for vcodec0 cores have only decoding bits enabled, as depicted
by qcom,bus-configs property of qcom,msm-bus-clients children
in qcom,vidc node. Do I understand correctly that these cores
are only needed for decoding, and not for encoding?
2. Currently in device tree there is a video-decoder subnode for Venus
node, however, for SDM845-v2 (and newer) chipsets, Venus does not use
subnodes. Does this mean it should be dropped for MSM8939 as well?
3. MSM8939 supports HEVC decoding, however, as the patchset is written
now, it does not work. It can be enabled, however, it will result in
breakage of Venus for faulty MSM8916 firmwares, because the code
disabling HEVC for HFI v1 needs to be removed, and as per commit
c50cc6dc6c48 ("media: venus: hfi_parser: Ignore HEVC encoding for V1"),
this would break support for some MSM8916 devices. What could be the
best way to work around this?
4. To attach vcodec0 power domain list to dev_{dec,enc}, I had to move
vdec_get and venc_get later in the probe. Should this be avoided, and
is there a better way to attach vcodec power domains?

There may be some other issues with this patchset - this is WIP code, so
feedback is very appreciated. Thank you!

Signed-off-by: Erikas Bitovtas <xerikasxx@gmail.com>
---
André Apitzsch (4):
media: dt-bindings: venus: Add qcom,msm8939 schema
media: venus: core: Add msm8939 resource struct
arm64: dts: qcom: msm8939: Add venus node
arm64: dts: qcom: msm8939-longcheer-l9100: Enable venus node

Erikas Bitovtas (6):
media: venus: add pmdomains to the struct based on the purpose of cores
arm64: dts: qcom: msm8939-asus-z00t: add Venus
clk: qcom: gcc-msm8939: mark Venus core GDSCs as hardware controlled
media: venus: move getting vdec and venc for later
media: qcom: venus: Move HFI v3 venc and vdec methods to HFI v1
media: venus: add power domain enable logic for Venus cores

.../bindings/media/qcom,msm8939-venus.yaml | 104 ++++++++++++
arch/arm64/boot/dts/qcom/msm8939-asus-z00t.dts | 8 +
.../boot/dts/qcom/msm8939-longcheer-l9100.dts | 8 +
arch/arm64/boot/dts/qcom/msm8939.dtsi | 24 +++
drivers/clk/qcom/gcc-msm8939.c | 4 +
drivers/media/platform/qcom/venus/core.c | 39 +++++
drivers/media/platform/qcom/venus/core.h | 8 +
drivers/media/platform/qcom/venus/pm_helpers.c | 187 ++++++++++++++++++---
drivers/media/platform/qcom/venus/vdec.c | 12 +-
drivers/media/platform/qcom/venus/venc.c | 12 +-
10 files changed, 374 insertions(+), 32 deletions(-)
---
base-commit: 936c21068d7ade00325e40d82bfd2f3f29d9f659
change-id: 20260416-msm8939-venus-rfc-c025c4c74fae

Best regards,
--
Erikas Bitovtas <xerikasxx@gmail.com>