media: atomisp: turn on camera before setting it
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 19 May 2020 16:21:49 +0000 (18:21 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 20 May 2020 12:51:29 +0000 (14:51 +0200)
Camera cannot be set on power off mode.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/i2c/atomisp-ov2680.c

index 1cb55acf19e1339cabf85c1733cb061deacc6eb1..334f23f35d4a8180c830be1c076c6679df6244b6 100644 (file)
@@ -698,10 +698,13 @@ static int power_ctrl(struct v4l2_subdev *sd, bool flag)
 {
        int ret = 0;
        struct ov2680_device *dev = to_ov2680_sensor(sd);
+       struct i2c_client *client = v4l2_get_subdevdata(sd);
 
        if (!dev || !dev->platform_data)
                return -ENODEV;
 
+       dev_dbg(&client->dev, "%s: %s", __func__, flag? "on" : "off");
+
        if (flag) {
                ret |= dev->platform_data->v1p8_ctrl(sd, 1);
                ret |= dev->platform_data->v2p8_ctrl(sd, 1);
@@ -959,6 +962,8 @@ static int ov2680_set_fmt(struct v4l2_subdev *sd,
        dev_dbg(&client->dev, "%s: i=%d, w=%d, h=%d\n",
                __func__, dev->fmt_idx, fmt->width, fmt->height);
 
+       // IS IT NEEDED?
+       power_up(sd);
        ret = ov2680_write_reg_array(client, ov2680_res[dev->fmt_idx].regs);
        if (ret)
                dev_err(&client->dev,