Call ov2680_calc_mode() from probe() instead of relying on userspace to make at least one s_fmt call to fill the mode parameters. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> --- drivers/staging/media/atomisp/i2c/atomisp-ov2680.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c b/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c index 8bcfa5ae2ea0..6cbc470bce91 100644 --- a/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c +++ b/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c @@ -195,8 +195,10 @@ static void ov2680_fill_format(struct ov2680_dev *sensor, ov2680_set_bayer_order(sensor, fmt); } -static void ov2680_calc_mode(struct ov2680_dev *sensor, int width, int height) +static void ov2680_calc_mode(struct ov2680_dev *sensor) { + int width = sensor->mode.fmt.width; + int height = sensor->mode.fmt.height; int orig_width = width; int orig_height = height; @@ -338,7 +340,7 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd, return 0; mutex_lock(&sensor->lock); - ov2680_calc_mode(sensor, fmt->width, fmt->height); + ov2680_calc_mode(sensor); mutex_unlock(&sensor->lock); return 0; } @@ -660,6 +662,7 @@ static int ov2680_probe(struct i2c_client *client) } ov2680_fill_format(sensor, &sensor->mode.fmt, OV2680_NATIVE_WIDTH, OV2680_NATIVE_HEIGHT); + ov2680_calc_mode(sensor); ret = v4l2_async_register_subdev_sensor(&sensor->sd); if (ret) { -- 2.40.1