[PATCH 39/57] media: atomisp: ov2680: Drop v4l2_find_nearest_size() call from set_fmt()

Hans de Goede
2023-01-23T12:55:14Z

Since we now calculate timings baded on the desired width and height,
any width and height are valid as long as they don't exceed the sensor's
dimensions.

Drop the v4l2_find_nearest_size() call and instead clamp the requested
width and height.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/staging/media/atomisp/i2c/atomisp-ov2680.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c b/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
index 75d09c44202c..3d5e18fb45ee 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
@@ -512,7 +512,7 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd,
struct ov2680_device *dev = to_ov2680_sensor(sd);
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct v4l2_mbus_framefmt *fmt;
- struct ov2680_resolution *res;
+ unsigned int width, height;
int ret = 0;

dev_dbg(&client->dev, "%s: %s: pad: %d, fmt: %p\n",
@@ -520,14 +520,11 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd,
(format->which == V4L2_SUBDEV_FORMAT_TRY) ? "try" : "set",
format->pad, fmt);

- res = v4l2_find_nearest_size(ov2680_res_preview, ARRAY_SIZE(ov2680_res_preview),
- width, height,
- format->format.width, format->format.height);
- if (!res)
- res = &ov2680_res_preview[N_RES_PREVIEW - 1];
+ width = min_t(unsigned int, ALIGN(format->format.width, 2), OV2680_NATIVE_WIDTH);
+ height = min_t(unsigned int, ALIGN(format->format.height, 2), OV2680_NATIVE_HEIGHT);

fmt = __ov2680_get_pad_format(dev, sd_state, format->pad, format->which);
- ov2680_fill_format(dev, fmt, res->width, res->height);
+ ov2680_fill_format(dev, fmt, width, height);

format->format = *fmt;

--
2.39.0