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

Commit 4c7b2a91 authored by Petar Sivenov's avatar Petar Sivenov Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: isp: fixes incorrect drop frame check



In case when a multiple SOF event sources present on single VFE
hardware, frame drop check does not consider frame source. This is
important, because it depends on actual reg update event and can make
incorrect decision.
This change calls check only for streams that use corresponding frame
source.

Change-Id: I770d34315909fc2399f7a65fb6079609e7e9a7b0
Signed-off-by: default avatarPetar Sivenov <psiven@codeaurora.org>
parent 9dbf9c2b
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -728,8 +728,9 @@ void msm_isp_reset_framedrop(struct vfe_device *vfe_dev,
		stream_info->runtime_num_burst_capture);
}

void msm_isp_check_for_output_error(struct vfe_device *vfe_dev,
	struct msm_isp_timestamp *ts, struct msm_isp_sof_info *sof_info)
static void msm_isp_check_for_output_error(struct vfe_device *vfe_dev,
	struct msm_isp_timestamp *ts, struct msm_isp_sof_info *sof_info,
	enum msm_vfe_input_src frame_src)
{
	struct msm_vfe_axi_stream *stream_info;
	struct msm_vfe_axi_shared_data *axi_data;
@@ -753,10 +754,12 @@ void msm_isp_check_for_output_error(struct vfe_device *vfe_dev,
		sof_info->regs_not_updated =
			vfe_dev->reg_update_requested;
	}

	for (i = 0; i < VFE_AXI_SRC_MAX; i++) {
		struct msm_vfe_axi_stream *temp_stream_info;

		stream_info = &axi_data->stream_info[i];
		if (SRC_TO_INTF(stream_info->stream_src) != frame_src)
			continue;
		stream_idx = HANDLE_TO_IDX(stream_info->stream_handle);

		/*
@@ -1088,7 +1091,7 @@ void msm_isp_notify(struct vfe_device *vfe_dev, uint32_t event_type,
		} else {
			if (frame_src <= VFE_RAW_2) {
				msm_isp_check_for_output_error(vfe_dev, ts,
					&event_data.u.sof_info);
					&event_data.u.sof_info, frame_src);
			}
		}
		/*