Message ID | 20220421234240.1694-2-laurent.pinchart@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: rkisp1: Misc bug fixes and cleanups | expand |
Laurent Pinchart wrote: > 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> > --- > .../platform/rockchip/rkisp1/rkisp1-capture.c | 17 ++++++++++------- > 1 file 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 > -- > Regards, > > Laurent Pinchart > >
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