Hi Nicolas, On Thu 09 Nov 23, 16:38, Nicolas Dufresne wrote: > Le jeudi 09 novembre 2023 à 21:16 +0100, Paul Kocialkowski a écrit : > > 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. > > While this CMD looks useful on paper, we have had no use for it in any > open source user space. So with this in mind, shall we really enable it > ? How can we be sure that its actually working as intended ? Well I think it's part of the spec that it needs to be supportd. I must admit I have never used it in a real use case either, but it can be fixed later (without changing the uAPI) if the implementation turns out to be malfunctioning. Cheers, Paul > > 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, > > }; > -- Paul Kocialkowski, Bootlin Embedded Linux and kernel engineering https://bootlin.com
Attachment:
signature.asc
Description: PGP signature