Le mardi 21 juin 2022 à 00:31 +0200, Michael Grzeschik a écrit : > When codec_mode is HANTRO_MODE_NONE, then vidioc_enum_framesizes should > return with -EINVAL. At least when hantro_needs_postproc returns false. > Which is the case for encoders. But with the latest postproc scaling > patch this is not the case anymore. This patch is fixing this. > > Fixes: 79c987de8b35 ("media: hantro: Use post processor scaling capacities") > Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> > --- > drivers/staging/media/hantro/hantro_v4l2.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/media/hantro/hantro_v4l2.c b/drivers/staging/media/hantro/hantro_v4l2.c > index 22ad182ee972ca..0eb0873d383678 100644 > --- a/drivers/staging/media/hantro/hantro_v4l2.c > +++ b/drivers/staging/media/hantro/hantro_v4l2.c > @@ -124,8 +124,11 @@ static int vidioc_enum_framesizes(struct file *file, void *priv, > } > > /* For non-coded formats check if postprocessing scaling is possible */ > - if (fmt->codec_mode == HANTRO_MODE_NONE && hantro_needs_postproc(ctx, fmt)) { > - return hanto_postproc_enum_framesizes(ctx, fsize); > + if (fmt->codec_mode == HANTRO_MODE_NONE) { > + if (hantro_needs_postproc(ctx, fmt)) > + return hanto_postproc_enum_framesizes(ctx, fsize); > + else > + return -EINVAL; Was already broken before (because no one uses that yet), but this EINVAL is not strictly correct. If there is no postproc, enum should return a single frame size or ENOTTY. Returning EINVAL means the driver supports not output format, which is a lie. I personally think its saner to have a single framesize being returned, one that matches what G_FMT returns already. > } else if (fsize->index != 0) { > vpu_debug(0, "invalid frame size index (expected 0, got %d)\n", > fsize->index);