From c75e2eae7d1f68b33ab6c59890ddab95eee46137 Mon Sep 17 00:00:00 2001 From: Meera Gande Date: Wed, 10 Oct 2018 15:56:54 +0530 Subject: [PATCH] msm: camera: isp: Reset request queue at stop In few scenarios where the buffers are not queued from HAL, request queue overflow is seen. Added changes to reset the queue at destroy and when the buffer is not available to process. Change-Id: I7239175dda9cbc26fb65f568cbc5f7183ceaa24d Signed-off-by: Meera Gande --- .../media/platform/msm/camera_v2/isp/msm_isp_axi_util.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c index 661850d6d7c6..40ece2ffcf4b 100644 --- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c +++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c @@ -172,6 +172,8 @@ static void msm_isp_axi_destroy_stream( stream_info->bufq_handle[k] = 0; stream_info->vfe_mask = 0; stream_info->state = AVAILABLE; + memset(&stream_info->request_queue_cmd, + 0, sizeof(stream_info->request_queue_cmd)); } } @@ -3617,6 +3619,9 @@ static int msm_isp_request_frame(struct vfe_device *vfe_dev, stream_info->undelivered_request_cnt--; pr_err_ratelimited("%s:%d fail to cfg HAL buffer\n", __func__, __LINE__); + queue_req->cmd_used = 0; + list_del(&queue_req->list); + stream_info->request_q_cnt--; return rc; } @@ -3655,6 +3660,9 @@ static int msm_isp_request_frame(struct vfe_device *vfe_dev, flags); pr_err_ratelimited("%s:%d fail to cfg HAL buffer\n", __func__, __LINE__); + queue_req->cmd_used = 0; + list_del(&queue_req->list); + stream_info->request_q_cnt--; return rc; } } else {