]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
media: atomisp: Clamp width to max 1920 pixels when in ATOMISP_RUN_MODE_PREVIEW
authorHans de Goede <hdegoede@redhat.com>
Mon, 19 Jun 2023 10:52:08 +0000 (12:52 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Wed, 27 Sep 2023 07:40:02 +0000 (09:40 +0200)
The pipeline firmware-binaries used in previed mode have
ia_css_binary_xinfo.output.max_width set to 1920.

This causes ia_css_binary_find() to fail when trying to set a higher
resolution resulting in the dump_stack() call in ia_css_binary_find()
triggering and resulting in the try_fmt() or set_fmt() IOCTL failing.

Fix this by clamping the width to max 1920 when in preview mode.

Link: https://lore.kernel.org/r/20230619105212.303653-3-hdegoede@redhat.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_cmd.c

index 0803b296e9acc7c9d2be85cad4cb97b596b9869e..a5110636d6f5410604ff36fbfaaad72b8f075391 100644 (file)
@@ -3808,6 +3808,10 @@ int atomisp_try_fmt(struct atomisp_device *isp, struct v4l2_pix_format *f,
                        return -EINVAL;
        }
 
+       /* The preview pipeline does not support width > 1920 */
+       if (asd->run_mode->val == ATOMISP_RUN_MODE_PREVIEW)
+               f->width = min_t(u32, f->width, 1920);
+
        /*
         * atomisp_set_fmt() will set the sensor resolution to the requested
         * resolution + padding. Add padding here and remove it again after