From: Hans Verkuil <hans.verk...@cisco.com>

Use the _vb2_fop_release() return code to determine if this was
the last close or not.

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
---
 drivers/media/platform/am437x/am437x-vpfe.c      | 13 +++----------
 drivers/media/platform/exynos4-is/fimc-capture.c |  5 +----
 drivers/media/platform/marvell-ccic/mcam-core.c  |  5 +----
 drivers/media/platform/sh_vou.c                  |  5 +----
 4 files changed, 6 insertions(+), 22 deletions(-)

diff --git a/drivers/media/platform/am437x/am437x-vpfe.c 
b/drivers/media/platform/am437x/am437x-vpfe.c
index 210c779..14b9289 100644
--- a/drivers/media/platform/am437x/am437x-vpfe.c
+++ b/drivers/media/platform/am437x/am437x-vpfe.c
@@ -1186,21 +1186,14 @@ static int vpfe_initialize_device(struct vpfe_device 
*vpfe)
 static int vpfe_release(struct file *file)
 {
        struct vpfe_device *vpfe = video_drvdata(file);
-       bool fh_singular;
 
        mutex_lock(&vpfe->lock);
 
-       /* Save the singular status before we call the clean-up helper */
-       fh_singular = v4l2_fh_is_singular_file(file);
-
-       /* the release helper will cleanup any on-going streaming */
-       _vb2_fop_release(file, NULL);
-
        /*
-        * If this was the last open file.
-        * Then de-initialize hw module.
+        * The release helper will cleanup any on-going streaming.
+        * If this was the last open file, then de-initialize hw module.
         */
-       if (fh_singular)
+       if (_vb2_fop_release(file, NULL))
                vpfe_ccdc_close(&vpfe->ccdc, vpfe->pdev);
 
        mutex_unlock(&vpfe->lock);
diff --git a/drivers/media/platform/exynos4-is/fimc-capture.c 
b/drivers/media/platform/exynos4-is/fimc-capture.c
index f4458b0..f654b1c 100644
--- a/drivers/media/platform/exynos4-is/fimc-capture.c
+++ b/drivers/media/platform/exynos4-is/fimc-capture.c
@@ -537,7 +537,6 @@ static int fimc_capture_release(struct file *file)
 {
        struct fimc_dev *fimc = video_drvdata(file);
        struct fimc_vid_cap *vc = &fimc->vid_cap;
-       bool close = v4l2_fh_is_singular_file(file);
 
        dbg("pid: %d, state: 0x%lx", task_pid_nr(current), fimc->state);
 
@@ -548,9 +547,7 @@ static int fimc_capture_release(struct file *file)
                vc->streaming = false;
        }
 
-       _vb2_fop_release(file, NULL);
-
-       if (close) {
+       if (_vb2_fop_release(file, NULL)) {
                clear_bit(ST_CAPT_BUSY, &fimc->state);
                fimc_pipeline_call(&vc->ve, close);
                clear_bit(ST_CAPT_SUSPENDED, &fimc->state);
diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c 
b/drivers/media/platform/marvell-ccic/mcam-core.c
index 5e2b4df..13d4f7f 100644
--- a/drivers/media/platform/marvell-ccic/mcam-core.c
+++ b/drivers/media/platform/marvell-ccic/mcam-core.c
@@ -1631,12 +1631,9 @@ out:
 static int mcam_v4l_release(struct file *filp)
 {
        struct mcam_camera *cam = video_drvdata(filp);
-       bool last_open;
 
        mutex_lock(&cam->s_mutex);
-       last_open = v4l2_fh_is_singular_file(filp);
-       _vb2_fop_release(filp, NULL);
-       if (last_open) {
+       if (_vb2_fop_release(filp, NULL)) {
                mcam_disable_mipi(cam);
                mcam_ctlr_power_down(cam);
                if (cam->buffer_mode == B_vmalloc && alloc_bufs_at_read)
diff --git a/drivers/media/platform/sh_vou.c b/drivers/media/platform/sh_vou.c
index fe5c8ab..da1d78c 100644
--- a/drivers/media/platform/sh_vou.c
+++ b/drivers/media/platform/sh_vou.c
@@ -1157,12 +1157,9 @@ done_open:
 static int sh_vou_release(struct file *file)
 {
        struct sh_vou_device *vou_dev = video_drvdata(file);
-       bool is_last;
 
        mutex_lock(&vou_dev->fop_lock);
-       is_last = v4l2_fh_is_singular_file(file);
-       _vb2_fop_release(file, NULL);
-       if (is_last) {
+       if (_vb2_fop_release(file, NULL)) {
                /* Last close */
                vou_dev->status = SH_VOU_INITIALISING;
                sh_vou_reg_a_set(vou_dev, VOUER, 0, 0x101);
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to