Re: [PATCH 2/3] media: i2c: imx412: Switch to using the sub-device state lock

From: Tarang Raval

Date: Mon Mar 16 2026 - 02:35:10 EST


Hi Elgin,
 
> Switch to using the sub-device state lock and properly call
> v4l2_subdev_init_finalize() / v4l2_subdev_cleanup() on probe() /
> remove().
>
> Signed-off-by: Elgin Perumbilly <elgin.perumbilly@xxxxxxxxxxxxxxxxx>
> ---

...

> +
> +       ret = v4l2_async_register_subdev_sensor(&imx412->sd);
> +       if (ret < 0) {
> +               dev_err_probe(imx412->dev, ret,
> +                             "failed to register os05b10 sub-device\n");

Hmm, os05b10?

Please remove os05b10 from the error message.

> +               goto error_subdev_cleanup;
> +       }
> +
>          pm_runtime_idle(imx412->dev);
>
>          return 0;
>
> +error_subdev_cleanup:
> +       v4l2_subdev_cleanup(&imx412->sd);
> +       pm_runtime_disable(imx412->dev);
> +       pm_runtime_set_suspended(imx412->dev);
>  error_media_entity:
>          media_entity_cleanup(&imx412->sd.entity);
>  error_handler_free:
>          v4l2_ctrl_handler_free(imx412->sd.ctrl_handler);
>  error_power_off:
>          imx412_power_off(imx412->dev);
> -error_mutex_destroy:
> -       mutex_destroy(&imx412->mutex);
>
>          return ret;
>  }
> @@ -1168,9 +1163,9 @@ static int imx412_probe(struct i2c_client *client)
>  static void imx412_remove(struct i2c_client *client)
>  {
>          struct v4l2_subdev *sd = i2c_get_clientdata(client);
> -       struct imx412 *imx412 = to_imx412(sd);
>
>          v4l2_async_unregister_subdev(sd);
> +       v4l2_subdev_cleanup(sd);
>          media_entity_cleanup(&sd->entity);
>          v4l2_ctrl_handler_free(sd->ctrl_handler);
>
> @@ -1178,8 +1173,6 @@ static void imx412_remove(struct i2c_client *client)
>          if (!pm_runtime_status_suspended(&client->dev))
>                  imx412_power_off(&client->dev);
>          pm_runtime_set_suspended(&client->dev);
> -
> -       mutex_destroy(&imx412->mutex);
>  }
>
>  static const struct dev_pm_ops imx412_pm_ops = {
> --
> 2.34.1

Reviewed-by: Tarang Raval <tarang.raval@xxxxxxxxxxxxxxxxx>

Best Regards,
Tarang