media: sun6i-csi: Register the media device after creation
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>
Fri, 26 Aug 2022 18:32:08 +0000 (20:32 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sat, 24 Sep 2022 09:21:45 +0000 (11:21 +0200)
There is no particular need to register the media device in the
subdev notify complete callback.

Register it in the v4l2 code instead where it's more in-context.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c

index a55347b..e3d60b6 100644 (file)
@@ -638,7 +638,7 @@ static int sun6i_subdev_notify_complete(struct v4l2_async_notifier *notifier)
        if (ret < 0)
                return ret;
 
-       return media_device_register(&v4l2->media_dev);
+       return 0;
 }
 
 static const struct v4l2_async_notifier_operations sun6i_csi_async_ops = {
@@ -685,6 +685,12 @@ static int sun6i_csi_v4l2_setup(struct sun6i_csi_device *csi_dev)
 
        media_device_init(media_dev);
 
+       ret = media_device_register(media_dev);
+       if (ret) {
+               dev_err(dev, "failed to register media device: %d\n", ret);
+               goto error_media;
+       }
+
        /* V4L2 Control Handler */
 
        ret = v4l2_ctrl_handler_init(&v4l2->ctrl_handler, 0);
@@ -744,6 +750,7 @@ error_v4l2_ctrl:
        v4l2_ctrl_handler_free(&v4l2->ctrl_handler);
 
 error_media:
+       media_device_unregister(media_dev);
        media_device_cleanup(media_dev);
 
        return ret;