On Mon, Jan 23, 2023 at 01:51:47PM +0100, Hans de Goede wrote: > 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. Reviewed-by: Andy Shevchenko <andy@xxxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > 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 > -- With Best Regards, Andy Shevchenko