media: atomisp-ov2680: Move ov2680_init_registers() call to power_up()
authorHans de Goede <hdegoede@redhat.com>
Sun, 7 Nov 2021 17:15:43 +0000 (17:15 +0000)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Mon, 15 Nov 2021 08:11:55 +0000 (08:11 +0000)
Move ov2680_init_registers() call to power_up(), so that we also
init the registers on code-paths which do not call ov2680_s_power()
like running camorama.

Link: https://lore.kernel.org/linux-media/20211107171549.267583-6-hdegoede@redhat.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/i2c/atomisp-ov2680.c

index b6927f9be022c751ec2753342f5024193255bf4a..83608ba4e70a21a4cc13da0c4fb8117e5e2b3c54 100644 (file)
@@ -744,9 +744,15 @@ static int power_up(struct v4l2_subdev *sd)
        /* according to DS, 20ms is needed between PWDN and i2c access */
        msleep(20);
 
+       ret = ov2680_init_registers(sd);
+       if (ret)
+               goto fail_init_registers;
+
        dev->power_on = true;
        return 0;
 
+fail_init_registers:
+       dev->platform_data->flisclk_ctrl(sd, 0);
 fail_clk:
        gpio_ctrl(sd, 0);
 fail_power:
@@ -807,8 +813,6 @@ static int ov2680_s_power(struct v4l2_subdev *sd, int on)
                ret = power_down(sd);
        } else {
                ret = power_up(sd);
-               if (!ret)
-                       ret = ov2680_init_registers(sd);
        }
 
        mutex_unlock(&dev->input_lock);