mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
58 lines
2.2 KiB
Diff
58 lines
2.2 KiB
Diff
From 5b54b1f6ace36d92449924078e99c7948786264e Mon Sep 17 00:00:00 2001
|
|
From: Paul Kocialkowski <paulk@sys-base.io>
|
|
Date: Thu, 28 Aug 2025 01:49:00 +0000
|
|
Subject: [PATCH 066/113] FROMLIST(v2): 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>
|
|
---
|
|
drivers/media/platform/verisilicon/hantro_drv.c | 2 ++
|
|
drivers/media/platform/verisilicon/hantro_v4l2.c | 6 ++----
|
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
|
|
index c31fd75902d4..df637f4a8827 100644
|
|
--- a/drivers/media/platform/verisilicon/hantro_drv.c
|
|
+++ b/drivers/media/platform/verisilicon/hantro_drv.c
|
|
@@ -928,6 +928,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);
|
|
diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/media/platform/verisilicon/hantro_v4l2.c
|
|
index 7869faf921f4..f7231a3d8183 100644
|
|
--- a/drivers/media/platform/verisilicon/hantro_v4l2.c
|
|
+++ b/drivers/media/platform/verisilicon/hantro_v4l2.c
|
|
@@ -667,8 +667,7 @@ static int vidioc_g_selection(struct file *file, void *priv,
|
|
struct hantro_ctx *ctx = fh_to_ctx(priv);
|
|
|
|
/* 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) {
|
|
@@ -700,8 +699,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. */
|
|
--
|
|
2.34.1
|
|
|