Commit Message
Hans de Goede
Jan. 23, 2023, 12:51 p.m. UTC
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(-)
Comments
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@kernel.org> > 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 >
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;