Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da41b1af authored by Srikanth Uyyala's avatar Srikanth Uyyala
Browse files

msm: isp: fix the issue during overflow recovery



When HAL3 is used undelivered requests are stored in request_queue
these requests need to be cleared during overflow recovery.

Change-Id: I733ba127abba8bfb70b3c727c7196adba2cb1973
Signed-off-by: default avatarSrikanth Uyyala <suyyala@codeaurora.org>
parent 20e08616
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -2616,6 +2616,7 @@ int msm_isp_axi_reset(struct vfe_device *vfe_dev,
	struct msm_vfe_axi_shared_data *axi_data = &vfe_dev->axi_data;
	uint32_t bufq_handle = 0, bufq_id = 0;
	struct msm_isp_timestamp timestamp;
	struct msm_vfe_frame_request_queue *queue_req;
	unsigned long flags;
	int vfe_idx;

@@ -2652,8 +2653,18 @@ int msm_isp_axi_reset(struct vfe_device *vfe_dev,
					VFE_PING_FLAG);
		msm_isp_cfg_stream_scratch(stream_info,
					VFE_PONG_FLAG);
		stream_info->undelivered_request_cnt = 0;
		spin_unlock_irqrestore(&stream_info->lock,
					flags);
		while (!list_empty(&stream_info->request_q)) {
			queue_req = list_first_entry_or_null(
				&stream_info->request_q,
				struct msm_vfe_frame_request_queue, list);
			if (queue_req) {
				queue_req->cmd_used = 0;
				list_del(&queue_req->list);
			}
		}
		for (bufq_id = 0; bufq_id < VFE_BUF_QUEUE_MAX;
			bufq_id++) {
			bufq_handle = stream_info->bufq_handle[bufq_id];