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

Commit 58f60894 authored by Jing Zhou's avatar Jing Zhou Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: isp: Fix framedrop reporting



This change fixed the framedrop reporting that causes the CTS
test failure. The failure is due to the wrong frame id is used to
report the framedrop. This change will change the framedrop
report logic so that the correct frame id is used.

Change-Id: I5b219ed570b81a7fd6a97be46977cafd3e452492
Signed-off-by: default avatarJing Zhou <jzhou70@codeaurora.org>
parent 6e798f84
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -1615,12 +1615,8 @@ static struct msm_isp_buffer *msm_isp_get_stream_buffer(
			ISP_EVENT_BUF_FATAL_ERROR);
		return buf;
	}
	if (rc < 0) {
		vfe_dev->error_info.
			stream_framedrop_count[bufq_handle & 0xFF]++;
		vfe_dev->error_info.framedrop_flag = 1;
	if (rc < 0)
		return buf;
	}

	if (buf->num_planes != stream_info->num_planes) {
		pr_err("%s: Invalid buffer\n", __func__);
@@ -2959,14 +2955,13 @@ static int msm_isp_return_empty_buffer(struct vfe_device *vfe_dev,
		msm_isp_halt_send_error(vfe_dev, ISP_EVENT_BUF_FATAL_ERROR);
		return rc;
	}

	if (rc < 0 || buf == NULL) {
		vfe_dev->error_info.
			stream_framedrop_count[bufq_handle & 0xFF]++;
		pr_err("Skip framedrop report due to no buffer\n");
		return rc;
	}

	msm_isp_get_timestamp(&timestamp);

	buf->buf_debug.put_state[buf->buf_debug.put_state_last] =
		MSM_ISP_BUFFER_STATE_DROP_REG;
	buf->buf_debug.put_state_last ^= 1;
@@ -3531,6 +3526,12 @@ void msm_isp_process_axi_irq_stream(struct vfe_device *vfe_dev,
	}

	if (!done_buf) {
		if (stream_info->buf_divert) {
			vfe_dev->error_info.stream_framedrop_count[
				stream_info->bufq_handle[
				VFE_BUF_QUEUE_DEFAULT] & 0xFF]++;
			vfe_dev->error_info.framedrop_flag = 1;
		}
		spin_unlock_irqrestore(&stream_info->lock, flags);
		return;
	}