public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] media: venus: only set H264_TRANSFORM_8X8 on supported hfi versions
@ 2023-04-14 10:12 Martin Dørum
  2023-04-27 14:43 ` Javier Martinez Canillas
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Martin Dørum @ 2023-04-14 10:12 UTC (permalink / raw)
  To: stanimir.k.varbanov, quic_vgarodia; +Cc: linux-media, linux-arm-msm

Setting the H264_TRANSFORM_8X8 property only works on HFI versions
>=4xx. The code used to unconditionally set the property in
venc_set_properties, which meant that initializing the encoder would
always fail unless the hfi_version was >=4xx.

This patch changes venc_set_properties to only set the
H264_TRANSFORM_8X8 property if the hfi version is >=4xx.

Signed-off-by: Martin Dørum <dorum@noisolation.com>

---

I have an APQ8016-based board. Before this patch, the Venus driver
would simply fail with EINVAL when trying to request buffers
(VIDIOC_REQBUFS). With this patch, encoding works
(tested using gstreamer's v4l2h264enc).

 drivers/media/platform/qcom/venus/venc.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c
index cdb12546c4fa..b3df805a8c9c 100644
--- a/drivers/media/platform/qcom/venus/venc.c
+++ b/drivers/media/platform/qcom/venus/venc.c
@@ -672,16 +672,17 @@ static int venc_set_properties(struct venus_inst *inst)
 		if (ret)
 			return ret;

-		ptype = HFI_PROPERTY_PARAM_VENC_H264_TRANSFORM_8X8;
-		h264_transform.enable_type = 0;
-		if (ctr->profile.h264 == V4L2_MPEG_VIDEO_H264_PROFILE_HIGH ||
-		    ctr->profile.h264 == V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH)
-			h264_transform.enable_type = ctr->h264_8x8_transform;
-
-		ret = hfi_session_set_property(inst, ptype, &h264_transform);
-		if (ret)
-			return ret;
-
+		if (!IS_V1(inst->core) && !IS_V3(inst->core)) {
+			ptype = HFI_PROPERTY_PARAM_VENC_H264_TRANSFORM_8X8;
+			h264_transform.enable_type = 0;
+			if (ctr->profile.h264 == V4L2_MPEG_VIDEO_H264_PROFILE_HIGH ||
+			    ctr->profile.h264 == V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH)
+				h264_transform.enable_type = ctr->h264_8x8_transform;
+
+			ret = hfi_session_set_property(inst, ptype, &h264_transform);
+			if (ret)
+				return ret;
+		}
 	}

 	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 ||
--
2.34.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-05-25 22:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-14 10:12 [PATCH] media: venus: only set H264_TRANSFORM_8X8 on supported hfi versions Martin Dørum
2023-04-27 14:43 ` Javier Martinez Canillas
2023-05-02 12:49   ` Vikash Garodia
2023-05-02 16:37 ` Bryan O'Donoghue
2023-05-12 10:32   ` Bryan O'Donoghue
2023-05-16 12:33     ` Vikash Garodia
2023-05-02 20:52 ` Stanimir Varbanov
2023-05-03  4:25   ` Vikash Garodia
2023-05-03  5:53     ` Stanimir Varbanov
2023-05-03  6:47       ` Vikash Garodia
2023-05-25 22:03         ` Stanimir Varbanov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox