From: Erikas Bitovtas <xerikasxx@gmail.com>
To: "Bryan O'Donoghue" <bod@kernel.org>,
"Vikash Garodia" <vikash.garodia@oss.qualcomm.com>,
"Dikshita Agarwal" <dikshita.agarwal@oss.qualcomm.com>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"André Apitzsch" <git@apitzsch.eu>,
"Bjorn Andersson" <andersson@kernel.org>,
"Konrad Dybcio" <konradybcio@kernel.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Brian Masney" <bmasney@redhat.com>
Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-clk@vger.kernel.org,
~postmarketos/upstreaming@lists.sr.ht,
phone-devel@vger.kernel.org,
Erikas Bitovtas <xerikasxx@gmail.com>
Subject: [PATCH v6 8/8] media: qcom: venus: add codec blacklist mechanism
Date: Sun, 10 May 2026 12:47:46 +0300 [thread overview]
Message-ID: <20260510-msm8939-venus-rfc-v6-8-e69465375900@gmail.com> (raw)
In-Reply-To: <20260510-msm8939-venus-rfc-v6-0-e69465375900@gmail.com>
Add decode and encode blacklist properties to allow disabling different
codecs per Venus device, instead of doing it per HFI version.
Despite using HFI version 1, MSM8939 supports HEVC decoding, therefore
it is not blacklisted. Add HEVC to the type converter function so it can
be recognized.
Signed-off-by: Erikas Bitovtas <xerikasxx@gmail.com>
---
drivers/media/platform/qcom/venus/core.c | 6 ++++++
drivers/media/platform/qcom/venus/core.h | 2 ++
drivers/media/platform/qcom/venus/hfi_parser.c | 10 +++++-----
3 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 6ad20d58dda2..75cf63b452dd 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -178,6 +178,8 @@ static void venus_sys_error_handler(struct work_struct *work)
static u32 to_v4l2_codec_type(u32 codec)
{
switch (codec) {
+ case HFI_VIDEO_CODEC_HEVC:
+ return V4L2_PIX_FMT_HEVC;
case HFI_VIDEO_CODEC_H264:
return V4L2_PIX_FMT_H264;
case HFI_VIDEO_CODEC_H263:
@@ -684,6 +686,8 @@ static const struct venus_resources msm8916_res = {
.vmem_addr = 0,
.dma_mask = 0xddc00000 - 1,
.fwname = "qcom/venus-1.8/venus.mbn",
+ .dec_codec_blacklist = HFI_VIDEO_CODEC_HEVC | HFI_VIDEO_CODEC_SPARK,
+ .enc_codec_blacklist = HFI_VIDEO_CODEC_HEVC,
.dec_nodename = "video-decoder",
.enc_nodename = "video-encoder",
};
@@ -724,6 +728,8 @@ static const struct venus_resources msm8939_res = {
.vmem_addr = 0,
.dma_mask = 0xddc00000 - 1,
.fwname = "qcom/venus-1.8/venus.mbn",
+ .dec_codec_blacklist = HFI_VIDEO_CODEC_SPARK,
+ .enc_codec_blacklist = HFI_VIDEO_CODEC_HEVC,
.dec_nodename = "video-decoder",
.enc_nodename = "video-encoder",
};
diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
index 7506f5d0f609..514dfb99449c 100644
--- a/drivers/media/platform/qcom/venus/core.h
+++ b/drivers/media/platform/qcom/venus/core.h
@@ -84,6 +84,8 @@ struct venus_resources {
unsigned int vcodec_pmdomains_num;
const char **opp_pmdomain;
unsigned int vcodec_num;
+ const u32 dec_codec_blacklist;
+ const u32 enc_codec_blacklist;
const char * const resets[VIDC_RESETS_NUM_MAX];
unsigned int resets_num;
enum hfi_version hfi_version;
diff --git a/drivers/media/platform/qcom/venus/hfi_parser.c b/drivers/media/platform/qcom/venus/hfi_parser.c
index 92765f9c8873..8e762cf77968 100644
--- a/drivers/media/platform/qcom/venus/hfi_parser.c
+++ b/drivers/media/platform/qcom/venus/hfi_parser.c
@@ -206,11 +206,11 @@ static int parse_codecs(struct venus_core *core, void *data)
core->dec_codecs = codecs->dec_codecs;
core->enc_codecs = codecs->enc_codecs;
- if (IS_V1(core)) {
- core->dec_codecs &= ~HFI_VIDEO_CODEC_HEVC;
- core->dec_codecs &= ~HFI_VIDEO_CODEC_SPARK;
- core->enc_codecs &= ~HFI_VIDEO_CODEC_HEVC;
- }
+ if (core->res->dec_codec_blacklist)
+ core->dec_codecs &= ~core->res->dec_codec_blacklist;
+
+ if (core->res->enc_codec_blacklist)
+ core->enc_codecs &= ~core->res->enc_codec_blacklist;
return sizeof(*codecs);
}
--
2.54.0
prev parent reply other threads:[~2026-05-10 9:48 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-10 9:47 [PATCH v6 0/8] media: qcom: venus: add MSM8939 support Erikas Bitovtas
2026-05-10 9:47 ` [PATCH v6 1/8] media: dt-bindings: venus: Add qcom,msm8939 schema Erikas Bitovtas
2026-05-10 9:47 ` [PATCH v6 2/8] arm64: dts: qcom: msm8939: Add venus node Erikas Bitovtas
2026-05-10 9:47 ` [PATCH v6 3/8] arm64: dts: qcom: msm8939-longcheer-l9100: Enable " Erikas Bitovtas
2026-05-10 9:47 ` [PATCH v6 4/8] arm64: dts: qcom: msm8939-asus-z00t: add Venus Erikas Bitovtas
2026-05-10 9:47 ` [PATCH v6 5/8] clk: qcom: gcc-msm8939: mark Venus core GDSCs as hardware controlled Erikas Bitovtas
2026-05-10 9:47 ` [PATCH v6 6/8] media: qcom: venus: add power domain enable logic for Venus cores Erikas Bitovtas
2026-05-10 9:47 ` [PATCH v6 7/8] media: qcom: venus: Add msm8939 resource struct Erikas Bitovtas
2026-05-10 9:47 ` Erikas Bitovtas [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260510-msm8939-venus-rfc-v6-8-e69465375900@gmail.com \
--to=xerikasxx@gmail.com \
--cc=andersson@kernel.org \
--cc=bmasney@redhat.com \
--cc=bod@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dikshita.agarwal@oss.qualcomm.com \
--cc=git@apitzsch.eu \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=mturquette@baylibre.com \
--cc=phone-devel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=vikash.garodia@oss.qualcomm.com \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox