media: verisilicon: Explicitly disable selection api ioctls for decoders

Call the dedicated v4l2_disable_ioctl helper instead of manually
checking whether the current context is an encoder for the selection
api ioctls.

Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
Paul Kocialkowski
2025-08-28 15:49:18 +02:00
committed by Hans Verkuil
parent 3d4a87adba
commit 73d50aa92f
2 changed files with 4 additions and 4 deletions

View File

@@ -916,6 +916,8 @@ static int hantro_add_func(struct hantro_dev *vpu, unsigned int funcid)
vpu->decoder = func;
v4l2_disable_ioctl(vfd, VIDIOC_TRY_ENCODER_CMD);
v4l2_disable_ioctl(vfd, VIDIOC_ENCODER_CMD);
v4l2_disable_ioctl(vfd, VIDIOC_G_SELECTION);
v4l2_disable_ioctl(vfd, VIDIOC_S_SELECTION);
}
video_set_drvdata(vfd, vpu);

View File

@@ -663,8 +663,7 @@ static int vidioc_g_selection(struct file *file, void *priv,
struct hantro_ctx *ctx = file_to_ctx(file);
/* Crop only supported on source. */
if (!ctx->is_encoder ||
sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
if (sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
return -EINVAL;
switch (sel->target) {
@@ -696,8 +695,7 @@ static int vidioc_s_selection(struct file *file, void *priv,
struct vb2_queue *vq;
/* Crop only supported on source. */
if (!ctx->is_encoder ||
sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
if (sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
return -EINVAL;
/* Change not allowed if the queue is streaming. */