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>
        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 = {
 
        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);
        v4l2_ctrl_handler_free(&v4l2->ctrl_handler);
 
 error_media:
+       media_device_unregister(media_dev);
        media_device_cleanup(media_dev);
 
        return ret;