From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D68983C687 for ; Fri, 10 Nov 2023 21:06:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=none Received: from hamburger.collabora.co.uk (hamburger.collabora.co.uk [IPv6:2a01:4f8:1c1c:f269::1]) by madras.collabora.co.uk (Postfix) with ESMTP id F295666073EF; Fri, 10 Nov 2023 21:06:15 +0000 (GMT) From: "Daniel Almeida" In-Reply-To: <20231109201640.340556-1-paul.kocialkowski@bootlin.com> Content-Type: text/plain; charset="utf-8" X-Forward: 127.0.0.1 Date: Fri, 10 Nov 2023 21:06:15 +0000 Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, "Ezequiel Garcia" , "Philipp Zabel" , "Mauro Carvalho Chehab" , "Hans Verkuil" , "Greg Kroah-Hartman" , "Nicolas Dufresne" , "Sebastian Fricke" , "Thomas Petazzoni" To: "Paul Kocialkowski" Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <667d-654e9b80-1-40e97880@22375103> Subject: =?utf-8?q?Re=3A?= [PATCH 1/4] =?utf-8?q?media=3A?==?utf-8?q?_vicodec=3A?= Disable =?utf-8?q?(TRY=5F)DECODER=5FCMD?= for the stateless case User-Agent: SOGoMail 5.8.4 Content-Transfer-Encoding: quoted-printable Hi Paul, On Thursday, November 09, 2023 17:16 -03, Paul Kocialkowski wrote: > The (TRY=5F)DECODER=5FCMD ioctls are only useful for stateful decoder= s and for > stateless decoders that support holding capture buffers (which is not= the case > for this driver). >=20 > Disable them when registering the stateless decoder. >=20 > Signed-off-by: Paul Kocialkowski > --- > .../media/test-drivers/vicodec/vicodec-core.c | 19 +++++++++++++----= -- > 1 file changed, 13 insertions(+), 6 deletions(-) >=20 > diff --git a/drivers/media/test-drivers/vicodec/vicodec-core.c b/driv= ers/media/test-drivers/vicodec/vicodec-core.c > index 6f0e20df74e9..8f7a2b153ee9 100644 > --- a/drivers/media/test-drivers/vicodec/vicodec-core.c > +++ b/drivers/media/test-drivers/vicodec/vicodec-core.c > @@ -1240,6 +1240,12 @@ static int vicodec=5Fdecoder=5Fcmd(struct file= *file, void *fh, > struct vicodec=5Fctx *ctx =3D file2ctx(file); > int ret; > =20 > + /* > + * This ioctl should not be used with a stateless codec that doesn'= t > + * support holding buffers and the associated flush command. > + */ > + WARN=5FON(ctx->is=5Fstateless); > + > ret =3D v4l2=5Fm2m=5Fioctl=5Ftry=5Fdecoder=5Fcmd(file, fh, dc); > if (ret < 0) > return ret; > @@ -2025,7 +2031,7 @@ static const struct v4l2=5Fm2m=5Fops m2m=5Fops = =3D { > =20 > static int register=5Finstance(struct vicodec=5Fdev *dev, > struct vicodec=5Fdev=5Finstance *dev=5Finstance, > - const char *name, bool is=5Fenc) > + const char *name, bool is=5Fenc, bool is=5Fstateless) > { > struct video=5Fdevice *vfd; > int ret; > @@ -2045,10 +2051,11 @@ static int register=5Finstance(struct vicodec= =5Fdev *dev, > strscpy(vfd->name, name, sizeof(vfd->name)); > vfd->device=5Fcaps =3D V4L2=5FCAP=5FSTREAMING | > (multiplanar ? V4L2=5FCAP=5FVIDEO=5FM2M=5FMPLANE : V4L2=5FCAP=5FVI= DEO=5FM2M); > - if (is=5Fenc) { > + if (is=5Fenc || is=5Fstateless) { > v4l2=5Fdisable=5Fioctl(vfd, VIDIOC=5FDECODER=5FCMD); > v4l2=5Fdisable=5Fioctl(vfd, VIDIOC=5FTRY=5FDECODER=5FCMD); > - } else { > + } > + if (!is=5Fenc) { > v4l2=5Fdisable=5Fioctl(vfd, VIDIOC=5FENCODER=5FCMD); > v4l2=5Fdisable=5Fioctl(vfd, VIDIOC=5FTRY=5FENCODER=5FCMD); > } > @@ -2107,17 +2114,17 @@ static int vicodec=5Fprobe(struct platform=5F= device *pdev) > platform=5Fset=5Fdrvdata(pdev, dev); > =20 > ret =3D register=5Finstance(dev, &dev->stateful=5Fenc, "stateful-en= coder", > - true); > + true, false); > if (ret) > goto unreg=5Fdev; > =20 > ret =3D register=5Finstance(dev, &dev->stateful=5Fdec, "stateful-de= coder", > - false); > + false, false); > if (ret) > goto unreg=5Fsf=5Fenc; > =20 > ret =3D register=5Finstance(dev, &dev->stateless=5Fdec, "stateless-= decoder", > - false); > + false, true); > if (ret) > goto unreg=5Fsf=5Fdec; > =20 > --=20 > 2.42.1 >=20 >=20 > =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F= =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip Reviewed-by: Daniel Almeida