media: atomisp: ov2722: Don't take the input_lock for try_fmt calls.
authorHans de Goede <hdegoede@redhat.com>
Sat, 3 Dec 2022 19:44:00 +0000 (20:44 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Wed, 8 Feb 2023 07:24:35 +0000 (08:24 +0100)
On ov2722_set_fmt() calls with format->which == V4L2_SUBDEV_FORMAT_TRY,
ov2722_set_fmt() does not talk to the sensor, so there is no need to
lock the dev->input_lock mutex in this case.

Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/i2c/atomisp-ov2722.c

index 83d036b..e09c80d 100644 (file)
@@ -651,7 +651,6 @@ static int ov2722_set_fmt(struct v4l2_subdev *sd,
        if (!ov2722_info)
                return -EINVAL;
 
-       mutex_lock(&dev->input_lock);
        res = v4l2_find_nearest_size(ov2722_res_preview,
                                     ARRAY_SIZE(ov2722_res_preview), width,
                                     height, fmt->width, fmt->height);
@@ -665,10 +664,10 @@ static int ov2722_set_fmt(struct v4l2_subdev *sd,
        fmt->code = MEDIA_BUS_FMT_SGRBG10_1X10;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                sd_state->pads->try_fmt = *fmt;
-               mutex_unlock(&dev->input_lock);
                return 0;
        }
 
+       mutex_lock(&dev->input_lock);
 
        dev->pixels_per_line = dev->res->pixels_per_line;
        dev->lines_per_frame = dev->res->lines_per_frame;