Re: [PATCH 3/4] media: verisilicon: Hook the (TRY_)DECODER_CMD stateless ioctls

From: Daniel Almeida
Date: Fri Nov 10 2023 - 16:07:54 EST


On Thursday, November 09, 2023 17:16 -03, Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx> wrote:

> The (TRY_)DECODER_CMD ioctls are used to support flushing when holding capture
> buffers is supported. This is the case of this driver but the ioctls were never
> hooked to the ioctl ops.
>
> Add them to correctly support flushing.
>
> Fixes: 340ce50f75a6 ("media: hantro: Enable HOLD_CAPTURE_BUF for H.264")
> Signed-off-by: Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx>
> ---
> drivers/media/platform/verisilicon/hantro_drv.c | 2 ++
> drivers/media/platform/verisilicon/hantro_v4l2.c | 3 +++
> 2 files changed, 5 insertions(+)
>
> diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
> index a9fa05ac56a9..3a2a0f28cbfe 100644
> --- a/drivers/media/platform/verisilicon/hantro_drv.c
> +++ b/drivers/media/platform/verisilicon/hantro_drv.c
> @@ -905,6 +905,8 @@ static int hantro_add_func(struct hantro_dev *vpu, unsigned int funcid)
>
> if (funcid == MEDIA_ENT_F_PROC_VIDEO_ENCODER) {
> vpu->encoder = func;
> + v4l2_disable_ioctl(vfd, VIDIOC_TRY_DECODER_CMD);
> + v4l2_disable_ioctl(vfd, VIDIOC_DECODER_CMD);
> } else {
> vpu->decoder = func;
> v4l2_disable_ioctl(vfd, VIDIOC_TRY_ENCODER_CMD);
> diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/media/platform/verisilicon/hantro_v4l2.c
> index b3ae037a50f6..db145519fc5d 100644
> --- a/drivers/media/platform/verisilicon/hantro_v4l2.c
> +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c
> @@ -785,6 +785,9 @@ const struct v4l2_ioctl_ops hantro_ioctl_ops = {
> .vidioc_g_selection = vidioc_g_selection,
> .vidioc_s_selection = vidioc_s_selection,
>
> + .vidioc_decoder_cmd = v4l2_m2m_ioctl_stateless_decoder_cmd,
> + .vidioc_try_decoder_cmd = v4l2_m2m_ioctl_stateless_try_decoder_cmd,
> +
> .vidioc_try_encoder_cmd = v4l2_m2m_ioctl_try_encoder_cmd,
> .vidioc_encoder_cmd = vidioc_encoder_cmd,
> };
> --
> 2.42.1
>
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-rockchip

Reviewed-by: Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx>