Skip to content

Commit

Permalink
media: ov2680: Don't take the lock for try_fmt calls
Browse files Browse the repository at this point in the history
[ Upstream commit e521b9c ]

On ov2680_set_fmt() calls with format->which == V4L2_SUBDEV_FORMAT_TRY,
ov2680_set_fmt() does not talk to the sensor.

So in this case there is no need to lock the sensor->lock mutex or
to check that the sensor is streaming.

Fixes: 3ee47ca ("media: ov2680: Add Omnivision OV2680 sensor driver")
Acked-by: Rui Miguel Silva <rmfrfs@gmail.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
jwrdegoede authored and gregkh committed Sep 13, 2023
1 parent e0b6edf commit 90fbf01
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions drivers/media/i2c/ov2680.c
Expand Up @@ -595,24 +595,22 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd,
if (format->pad != 0)
return -EINVAL;

mutex_lock(&sensor->lock);

if (sensor->is_streaming) {
ret = -EBUSY;
goto unlock;
}

mode = v4l2_find_nearest_size(ov2680_mode_data,
ARRAY_SIZE(ov2680_mode_data), width,
height, fmt->width, fmt->height);
if (!mode) {
ret = -EINVAL;
goto unlock;
}
if (!mode)
return -EINVAL;

if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
try_fmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
format->format = *try_fmt;
return 0;
}

mutex_lock(&sensor->lock);

if (sensor->is_streaming) {
ret = -EBUSY;
goto unlock;
}

Expand Down

0 comments on commit 90fbf01

Please sign in to comment.