media: atomisp: Simplify atomisp_subdev_set_selection() calls in atomisp_set_fmt()
authorHans de Goede <hdegoede@redhat.com>
Mon, 29 May 2023 10:37:29 +0000 (11:37 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 9 Jun 2023 14:28:25 +0000 (15:28 +0100)
With the atomisp_subdev_set_selection(sink-pad, V4L2_SEL_TGT_CROP, rect)
calls dropped. The first and last compount code blocks of the 3 code blocks
in the if (...) {} else if (...) {} else {} code setting the source-pad
V4L2_SEL_TGT_COMPOSE selection are the same.

The both set V4L2_SEL_TGT_COMPOSE to a rectangle with the same dimensions
as f->fmt.pix.height.

Remove the else {} block at the end, drop the second if and prepend
the first if condition with "!second-if-condition ||" to remove
the code duplication.

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

index 36618d2..2a1cb30 100644 (file)
@@ -4319,7 +4319,8 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
 
        /* Try to enable YUV downscaling if ISP input is 10 % (either
         * width or height) bigger than the desired result. */
-       if (isp_sink_crop.width * 9 / 10 < f->fmt.pix.width ||
+       if (!IS_MOFD ||
+           isp_sink_crop.width * 9 / 10 < f->fmt.pix.width ||
            isp_sink_crop.height * 9 / 10 < f->fmt.pix.height ||
            (atomisp_subdev_format_conversion(asd) &&
             (asd->run_mode->val == ATOMISP_RUN_MODE_VIDEO ||
@@ -4331,7 +4332,7 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
                                             V4L2_SUBDEV_FORMAT_ACTIVE,
                                             ATOMISP_SUBDEV_PAD_SOURCE, V4L2_SEL_TGT_COMPOSE,
                                             0, &isp_sink_crop);
-       } else if (IS_MOFD) {
+       } else {
                struct v4l2_rect main_compose = {0};
 
                main_compose.width = isp_sink_crop.width;
@@ -4351,17 +4352,6 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
                                             ATOMISP_SUBDEV_PAD_SOURCE,
                                             V4L2_SEL_TGT_COMPOSE, 0,
                                             &main_compose);
-       } else {
-               struct v4l2_rect main_compose = {0};
-
-               main_compose.width = f->fmt.pix.width;
-               main_compose.height = f->fmt.pix.height;
-
-               atomisp_subdev_set_selection(&asd->subdev, fh.state,
-                                            V4L2_SUBDEV_FORMAT_ACTIVE,
-                                            ATOMISP_SUBDEV_PAD_SOURCE,
-                                            V4L2_SEL_TGT_COMPOSE, 0,
-                                            &main_compose);
        }
 
        ret = atomisp_set_fmt_to_isp(vdev, &output_info, &f->fmt.pix);