From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FBB737C929 for ; Sun, 10 May 2026 09:48:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778406495; cv=none; b=PiTx3hTuzTMEMtctLPv9SQFKBypgOBAPFGy5hMDpS440/+IRMU6302rxDedhoSA98B4wKi6Gb1m2uOnSGs+/H2WK7P4frJa5uREBvPXbsvqvH0VzoPnqJfakvnoPlnQvt5Ri22HaAojcvply5VlMMmxPrGXVmyr8oR2WXtkzbhw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778406495; c=relaxed/simple; bh=oPx+TYWEbOLSoB6gl8GiiVCXJsV3cGiWKVqM3xR9UtE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gVo4Xri2XUKD9Ah13mpruegYoqN92Fgku91ZoiIu5DpFkVLPDSpqqTBuAJUbr4RIM3Tw2h+qAD8x8LWJU/6ZQZXsARjLTrhOZB6k6lcFrisJ6DY+5S9G+DnGTFaGozHAEcmSCZMbSN4eqmAkYjORDBT3a5jBxL7CeOxdphLbYhc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FToPpjRm; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FToPpjRm" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-4891b0786beso22124895e9.1 for ; Sun, 10 May 2026 02:48:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778406492; x=1779011292; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Y+ZA0O5WYutVBzNDlZS1hqQyKCHJ3cdUiG33N7QKPgQ=; b=FToPpjRm4RG+zsaGViYBOCvdo2+0SXHSbBAleSZ2kQyCB2yac72sRj07vVMsyJqIDl Go8ZubrjIwoGCm6/SPjgs7lo/T5z3cCgYmEix0dWTV1bc766tNJqpLzYJ1h6D+vnscK2 79tb5DObwslWUk3+oRFLwsldEMiVUJ+lLxPikurtOlCXxL3fvs4U0NL/0ljpOxv2vMIv KNXjcL+s8ml2G/OO8G1OafDfZR7UzNDuxFzoKDWm2K0kV+HULejHtsgsTWfX3SuA+4Pe A2sGn4uTLfp6NrXrukjlfxMpg44jMl3wkSmMQxKHdiL5A8mliDyf+04pJSwkY/aBve3h ZHHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778406492; x=1779011292; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Y+ZA0O5WYutVBzNDlZS1hqQyKCHJ3cdUiG33N7QKPgQ=; b=ByXEEhdTsb/NY4zrLa3YeGez72J5oj7W3bjIFZWLocjClaWzqIe20Z4/1pMvkQe3mb h2qq/ZpYRT30U+MS7qi+M7dtvSwxuHRjdUvRHXq5po0mgVO4AFffU2EZTGp/FXGDayWz iGl3+twjV5TMfXRsTMM6KRcgRpuRRl2aDe1k/C1P1dLypjB7fy2AQM+hEuvK7D7zljFX e3j/KLPZRYQo70hwXsVjrQF9BPNQHLkeP3nBfHPtFCVzWOcd4ZTOrdrQThCwo9Qu8iPJ s99WBO5+3zfEToDYjz1+D1q+Tu31P3IgZ1w6ON7f21t1XOr0qZr6D3nTk4CTwkVdzO1g Wt9g== X-Forwarded-Encrypted: i=1; AFNElJ8FvfSlp3sTrczJDT0WUcAicmsZGC43Mu2nKIXArJNcBoAgk4n8M2mIUfOhkTpWcqFUEoCbnQIfY/Y/IMw=@vger.kernel.org X-Gm-Message-State: AOJu0YxO706uA8dbGjPJcylcllK53IILxycVaf1iYV/WnOSGBAyDTxjc Y2rv8Ofs53IcLZ8ph0NFWNGmeL4qN3fJo/0chaUarnqZNRR9Em8IP4Uc X-Gm-Gg: Acq92OG5aIe61DLPFPAzNJ12dCIRgZ8iRMuHX+tj6pcFxMs3fs9l1e1E3hvef7HavD4 zzbTUwme/BY/CAIpOQbgGAeaIEu18icAzkaQcU3tucbi1GfWEWppWtGZpeDgOWPwpGANATjLLGT M9eePo/89N0yKaRrciR904Z6el/S1NwoP1DuX6Boe3Po7rZRF4CANbBConkLjKCcCH5eKRaJT/W gUGsITdtTsV1TlDvVJeyl0qES3iO5cpl1EQFUJ392MRwDv8mQCtw/6zM7UyQi4sTvqcPVp0u8+b pyTNtpKQslGM9ppIyWf7pXTkWNpaACZtWeS/zMEW0RjSGqyEd3GUZORnHr67r9/faGfYhE4bHtk i9pFdSQMeN1vTYAKHkv9sjTZrMDXRNU77eZNnRTpabLdAdMYHSb9ZSYvtc9Y5QKfNwEpsR4oo7L pPOqW79aXF5g6HwGEavamgvz1mjRIT X-Received: by 2002:a05:600c:4ba6:b0:488:a882:c7 with SMTP id 5b1f17b1804b1-48e51f4bab4mr180086765e9.25.1778406491652; Sun, 10 May 2026 02:48:11 -0700 (PDT) Received: from [192.168.8.79] ([2a00:f502:160:4e2:a099:cad9:2ecd:93de]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48e702e0bf2sm182807925e9.4.2026.05.10.02.48.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 May 2026 02:48:11 -0700 (PDT) From: Erikas Bitovtas Date: Sun, 10 May 2026 12:47:46 +0300 Subject: [PATCH v6 8/8] media: qcom: venus: add codec blacklist mechanism Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260510-msm8939-venus-rfc-v6-8-e69465375900@gmail.com> References: <20260510-msm8939-venus-rfc-v6-0-e69465375900@gmail.com> In-Reply-To: <20260510-msm8939-venus-rfc-v6-0-e69465375900@gmail.com> To: Bryan O'Donoghue , Vikash Garodia , Dikshita Agarwal , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Andr=C3=A9_Apitzsch?= , Bjorn Andersson , Konrad Dybcio , Michael Turquette , Stephen Boyd , Brian Masney 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 X-Mailer: b4 0.15.2 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 --- 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