From bd5d042b1a661b1ed841b299bd124980251c02dd Mon Sep 17 00:00:00 2001 From: Hu Kejun Date: Tue, 22 May 2018 15:31:23 +0800 Subject: [PATCH] media: rk-isp10: fix owned_by_drv_count is not 0 when stop stream Change-Id: Iec72be86e515c2f29dfb12a6004db443769edd9f Signed-off-by: Hu Kejun --- drivers/media/platform/rk-isp10/cif_isp10_v4l2.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rk-isp10/cif_isp10_v4l2.c b/drivers/media/platform/rk-isp10/cif_isp10_v4l2.c index 0e02a5793923..94c55640451f 100644 --- a/drivers/media/platform/rk-isp10/cif_isp10_v4l2.c +++ b/drivers/media/platform/rk-isp10/cif_isp10_v4l2.c @@ -1266,12 +1266,16 @@ static void cif_isp10_v4l2_requeue_bufs( to_cif_isp10_device(q), stream_id, ispbuf))) { spin_lock(&dev->vbreq_lock); if ((buf->state == VB2_BUF_STATE_QUEUED) || - (buf->state == VB2_BUF_STATE_ACTIVE)) + (buf->state == VB2_BUF_STATE_DONE)) { buf->state = VB2_BUF_STATE_ACTIVE; - else + atomic_inc(&q->owned_by_drv_count); + } else if (buf->state == VB2_BUF_STATE_ACTIVE) { + /* nothing */ + } else { cif_isp10_pltfrm_pr_err(NULL, "skip state change for buf: %d, state: %d\n", buf->index, buf->state); + } spin_unlock(&dev->vbreq_lock); } else { cif_isp10_pltfrm_pr_err(NULL,