media: rkisp1: stats: Simplify (un)registration
Simplify error handling at registration time as media_entity_cleanup() can be called on an uninitialized entity, and make rkisp1_stats_unregister() safe to be called on an unregistered stats node to prepare for simplification of error handling at probe time. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Ricardo Ribalda <ribalda@chromium.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
8ba4862eb5
commit
6adceb706e
@ -463,21 +463,21 @@ int rkisp1_stats_register(struct rkisp1_device *rkisp1)
|
||||
node->pad.flags = MEDIA_PAD_FL_SINK;
|
||||
ret = media_entity_pads_init(&vdev->entity, 1, &node->pad);
|
||||
if (ret)
|
||||
goto err_mutex_destroy;
|
||||
goto error;
|
||||
|
||||
ret = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
|
||||
if (ret) {
|
||||
dev_err(&vdev->dev,
|
||||
"failed to register %s, ret=%d\n", vdev->name, ret);
|
||||
goto err_cleanup_media_entity;
|
||||
goto error;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_cleanup_media_entity:
|
||||
error:
|
||||
media_entity_cleanup(&vdev->entity);
|
||||
err_mutex_destroy:
|
||||
mutex_destroy(&node->vlock);
|
||||
stats->rkisp1 = NULL;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -487,6 +487,9 @@ void rkisp1_stats_unregister(struct rkisp1_device *rkisp1)
|
||||
struct rkisp1_vdev_node *node = &stats->vnode;
|
||||
struct video_device *vdev = &node->vdev;
|
||||
|
||||
if (!stats->rkisp1)
|
||||
return;
|
||||
|
||||
vb2_video_unregister_device(vdev);
|
||||
media_entity_cleanup(&vdev->entity);
|
||||
mutex_destroy(&node->vlock);
|
||||
|
Loading…
x
Reference in New Issue
Block a user