media: rkisp1: capture: Initialize entity before video device
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Thu, 24 Feb 2022 13:57:32 +0000 (13:57 +0000)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 27 Jun 2022 06:38:29 +0000 (07:38 +0100)
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>
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c

index fee2aaa..e887494 100644 (file)
@@ -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