Re: [PATCH v2 1/3] media: i2c: ov5647: Convert to CCI register access helpers

From: Tarang Raval
Date: Mon Dec 29 2025 - 09:53:43 EST


>  static int ov5647_set_mode(struct v4l2_subdev *sd)
>  {
>         struct i2c_client *client = v4l2_get_subdevdata(sd);
>         struct ov5647 *sensor = to_sensor(sd);
> -       u8 resetval, rdval;
> +       u64 resetval, rdval;
>         int ret;
> 
> -       ret = ov5647_read(sd, OV5647_SW_STANDBY, &rdval);
> +       ret = cci_read(sensor->regmap, OV5647_SW_STANDBY, &rdval, NULL);
>         if (ret < 0)
>                 return ret;
> 
> -       ret = ov5647_write_array(sd, sensor->mode->reg_list,
> -                                sensor->mode->num_regs);
> +       ret = cci_multi_reg_write(sensor->regmap, sensor->mode->reg_list,
> +                                 sensor->mode->num_regs, NULL);
>         if (ret < 0) {
>                 dev_err(&client->dev, "write sensor default regs error\n");
>                 return ret;
> @@ -706,13 +624,13 @@ static int ov5647_set_mode(struct v4l2_subdev *sd)
>         if (ret < 0)
>                 return ret;
> 
> -       ret = ov5647_read(sd, OV5647_SW_STANDBY, &resetval);
> +       ret = cci_read(sensor->regmap, OV5647_SW_STANDBY, &resetval, NULL);
>         if (ret < 0)
>                 return ret;

Are both read operations in ov5647_set_mode() really needed?

Every mode table already ends with writing 0x0100 => 0x01.

Does anyone know the purpose of these reads, or are they unused?

Best Regards,
Tarang

>         if (!(resetval & 0x01)) {
>                 dev_err(&client->dev, "Device was in SW standby");
> -               ret = ov5647_write(sd, OV5647_SW_STANDBY, 0x01);
> +               ret = cci_write(sensor->regmap, OV5647_SW_STANDBY, 0x01, NULL);
>                 if (ret < 0)
>                         return ret;
>         }