summaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-02-24 13:57:32 +0000
committerMauro Carvalho Chehab <mchehab@kernel.org>2022-06-27 07:38:29 +0100
commit56c8534e2d2f9bf789cdfc50e62bc30c992da69f (patch)
tree301bf6e290c7c8b1543c074d2a50e5d169ae5988 /drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
parent945a9a8e448b65bec055d37eba58f711b39f66f0 (diff)
downloadlinux-stable-56c8534e2d2f9bf789cdfc50e62bc30c992da69f.tar.gz
linux-stable-56c8534e2d2f9bf789cdfc50e62bc30c992da69f.tar.bz2
linux-stable-56c8534e2d2f9bf789cdfc50e62bc30c992da69f.zip
media: rkisp1: capture: Initialize entity before video device
The media_entity embedded in the video_device needs to be initialized before registering the video_device. Do so. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Ricardo Ribalda <ribalda@chromium.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c')
-rw-r--r--drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
index fee2aaacb26b..e88749488969 100644
--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
@@ -1386,22 +1386,25 @@ static int rkisp1_register_capture(struct rkisp1_capture *cap)
vdev->queue = q;
+ ret = media_entity_pads_init(&vdev->entity, 1, &node->pad);
+ if (ret)
+ return ret;
+
ret = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
if (ret) {
dev_err(cap->rkisp1->dev,
"failed to register %s, ret=%d\n", vdev->name, ret);
- return ret;
+ goto error;
}
+
v4l2_info(v4l2_dev, "registered %s as /dev/video%d\n", vdev->name,
vdev->num);
- ret = media_entity_pads_init(&vdev->entity, 1, &node->pad);
- if (ret) {
- video_unregister_device(vdev);
- return ret;
- }
-
return 0;
+
+error:
+ media_entity_cleanup(&vdev->entity);
+ return ret;
}
static void