media: cedrus: initialize controls a bit later
authorJernej Skrabec <jernej.skrabec@gmail.com>
Wed, 2 Nov 2022 18:08:08 +0000 (19:08 +0100)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Fri, 4 Nov 2022 15:56:37 +0000 (16:56 +0100)
While it doesn't matter if controls are initialized before or after
queues and formats from open handler standpoint, initializing them last
helps keeping s_ctrl handler simpler, since everything has already valid
values.

This is just preparation for follow up changes. No functional change is
intended.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/staging/media/sunxi/cedrus/cedrus.c

index 37b1df9a9d6abdc100b12918f16a502cca2acaac..6a2c089286139417b3af1d87e8e7650162c7659f 100644 (file)
@@ -355,27 +355,27 @@ static int cedrus_open(struct file *file)
        file->private_data = &ctx->fh;
        ctx->dev = dev;
 
-       ret = cedrus_init_ctrls(dev, ctx);
-       if (ret)
-               goto err_free;
-
        ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->m2m_dev, ctx,
                                            &cedrus_queue_init);
        if (IS_ERR(ctx->fh.m2m_ctx)) {
                ret = PTR_ERR(ctx->fh.m2m_ctx);
-               goto err_ctrls;
+               goto err_free;
        }
 
        cedrus_reset_out_format(ctx);
 
+       ret = cedrus_init_ctrls(dev, ctx);
+       if (ret)
+               goto err_m2m_release;
+
        v4l2_fh_add(&ctx->fh);
 
        mutex_unlock(&dev->dev_mutex);
 
        return 0;
 
-err_ctrls:
-       v4l2_ctrl_handler_free(&ctx->hdl);
+err_m2m_release:
+       v4l2_m2m_ctx_release(ctx->fh.m2m_ctx);
 err_free:
        kfree(ctx);
        mutex_unlock(&dev->dev_mutex);