media: staging: media: zoran: fix TRY_FMT handling
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Tue, 14 Dec 2021 16:16:34 +0000 (17:16 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 23 Jan 2022 20:18:40 +0000 (21:18 +0100)
TRY_FMT must not set actual capture values (zr->buffer_size in
this case), since it is a 'try' only.

zoran_try_fmt_vid_cap() also didn't fill in fmt->fmt.pix.bytesperline
and fmt->fmt.pix.sizeimage correctly.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/zoran/zoran_driver.c

index dd19ee023d915c9fd40fa8bd60c7560899514ab7..367fe4be8357dbaf749b867631f46e01d66e3f23 100644 (file)
@@ -398,7 +398,6 @@ static int zoran_try_fmt_vid_out(struct file *file, void *__fh,
                                V4L2_FIELD_TOP : V4L2_FIELD_BOTTOM);
 
        fmt->fmt.pix.sizeimage = zoran_v4l2_calc_bufsize(&settings);
-       zr->buffer_size = fmt->fmt.pix.sizeimage;
        fmt->fmt.pix.bytesperline = 0;
        fmt->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M;
        return res;
@@ -433,6 +432,8 @@ static int zoran_try_fmt_vid_cap(struct file *file, void *__fh,
        bpp = DIV_ROUND_UP(zoran_formats[i].depth, 8);
        v4l_bound_align_image(&fmt->fmt.pix.width, BUZ_MIN_WIDTH, BUZ_MAX_WIDTH, bpp == 2 ? 1 : 2,
                &fmt->fmt.pix.height, BUZ_MIN_HEIGHT, BUZ_MAX_HEIGHT, 0, 0);
+       fmt->fmt.pix.bytesperline = fmt->fmt.pix.width * bpp;
+       fmt->fmt.pix.sizeimage = fmt->fmt.pix.bytesperline * fmt->fmt.pix.height;
        return 0;
 }