[2/3] media: vsp1: Don't open-code vb2_fop_release()
Commit Message
Use the vb2_fop_release() helper to replace the open-coded version. The
video->lock is assigned to the queue lock, used by vb2_fop_release(), so
the only functional difference is that v4l2_fh_release() is now called
before vsp1_device_put(). This should be harmless.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
drivers/media/platform/renesas/vsp1/vsp1_video.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
Comments
Quoting Laurent Pinchart (2022-03-18 21:14:45)
> Use the vb2_fop_release() helper to replace the open-coded version. The
> video->lock is assigned to the queue lock, used by vb2_fop_release(), so
> the only functional difference is that v4l2_fh_release() is now called
> before vsp1_device_put(). This should be harmless.
>
Seems to check out.
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
> drivers/media/platform/renesas/vsp1/vsp1_video.c | 10 +---------
> 1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_video.c b/drivers/media/platform/renesas/vsp1/vsp1_video.c
> index 044eb5778820..8f53abc71db2 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_video.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_video.c
> @@ -1129,19 +1129,11 @@ static int vsp1_video_open(struct file *file)
> static int vsp1_video_release(struct file *file)
> {
> struct vsp1_video *video = video_drvdata(file);
> - struct v4l2_fh *vfh = file->private_data;
>
> - mutex_lock(&video->lock);
> - if (video->queue.owner == vfh) {
> - vb2_queue_release(&video->queue);
> - video->queue.owner = NULL;
> - }
> - mutex_unlock(&video->lock);
> + vb2_fop_release(file);
>
> vsp1_device_put(video->vsp1);
>
> - v4l2_fh_release(file);
> -
> file->private_data = NULL;
>
> return 0;
> --
> Regards,
>
> Laurent Pinchart
>
@@ -1129,19 +1129,11 @@ static int vsp1_video_open(struct file *file)
static int vsp1_video_release(struct file *file)
{
struct vsp1_video *video = video_drvdata(file);
- struct v4l2_fh *vfh = file->private_data;
- mutex_lock(&video->lock);
- if (video->queue.owner == vfh) {
- vb2_queue_release(&video->queue);
- video->queue.owner = NULL;
- }
- mutex_unlock(&video->lock);
+ vb2_fop_release(file);
vsp1_device_put(video->vsp1);
- v4l2_fh_release(file);
-
file->private_data = NULL;
return 0;