media: atomisp-ov2680: Improve ov2680_set_fmt() error handling
authorHans de Goede <hdegoede@redhat.com>
Sat, 13 Aug 2022 09:03:23 +0000 (11:03 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sat, 24 Sep 2022 07:35:14 +0000 (09:35 +0200)
Exit with an error on any i2c-write errors, rather then only
exiting with an error when ov2680_get_intg_factor() fails.

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/i2c/atomisp-ov2680.c

index 9ac4698..5ba4c52 100644 (file)
@@ -864,9 +864,11 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd,
        /* s_power has not been called yet for std v4l2 clients (camorama) */
        power_up(sd);
        ret = ov2680_write_reg_array(client, dev->res->regs);
-       if (ret)
+       if (ret) {
                dev_err(&client->dev,
                        "ov2680 write resolution register err: %d\n", ret);
+               goto err;
+       }
 
        vts = dev->res->lines_per_frame;
 
@@ -875,8 +877,10 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd,
                vts = dev->exposure + OV2680_INTEGRATION_TIME_MARGIN;
 
        ret = ov2680_write_reg(client, 2, OV2680_TIMING_VTS_H, vts);
-       if (ret)
+       if (ret) {
                dev_err(&client->dev, "ov2680 write vts err: %d\n", ret);
+               goto err;
+       }
 
        ret = ov2680_get_intg_factor(client, ov2680_info, res);
        if (ret) {