summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeera Gande <mgande@codeaurora.org>2018-10-10 15:56:54 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2018-11-15 00:48:50 -0800
commitc75e2eae7d1f68b33ab6c59890ddab95eee46137 (patch)
treeb975e3201c9d1fbf5c1d2d2173d2ef80ed39ac80
parent23d37eecf80f7b08fde9a8f3d888855f9b08ca21 (diff)
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 <mgande@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c8
1 files changed, 8 insertions, 0 deletions
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 {