aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/media
diff options
context:
space:
mode:
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>2022-08-26 20:32:08 +0200
committerMauro Carvalho Chehab <mchehab@kernel.org>2022-09-24 11:21:45 +0200
commitf9a6e5651efff2b3461ef8256067437a39b54e9e (patch)
tree4a955e1f01bedacdd4c09a8804b798d891e31c42 /drivers/media
parentmedia: sun6i-csi: Pass and store csi device directly in video code (diff)
downloadwireguard-linux-f9a6e5651efff2b3461ef8256067437a39b54e9e.tar.xz
wireguard-linux-f9a6e5651efff2b3461ef8256067437a39b54e9e.zip
media: sun6i-csi: Register the media device after creation
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>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
index a55347b7a6d6..e3d60b647cb2 100644
--- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
+++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
@@ -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;