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

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

msm: camera: isp: fixes incorrect RDI empty frame handling



Existing empty frame reporting for RDI assumes that RDI and PIX
interfaces always receive frames from one source, which is not
correct. This change handles the case when one VFE is connected to two
or more frame sources.

Change-Id: I26c743baa0d014c166e1151d000227d6a8fc51b9
Signed-off-by: default avatarPetar Sivenov <psiven@codeaurora.org>
parent ef4859ec
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -3284,20 +3284,15 @@ static int msm_isp_request_frame(struct vfe_device *vfe_dev,
	trace_msm_cam_isp_bufcount("msm_isp_request_frame:",
		vfe_dev->pdev->id, frame_id, frame_src);

	/*
	 * If PIX stream is active then RDI path uses SOF frame ID of PIX
	 * In case of standalone RDI streaming, SOF are used from
	 * individual intf.
	 */
	/*
	 * If frame_id = 1 then no eof check is needed
	 */
	if (((vfe_dev->axi_data.src_info[VFE_PIX_0].active) && ((frame_id !=
	if (((frame_src == VFE_PIX_0) && ((frame_id !=
		vfe_dev->axi_data.src_info[VFE_PIX_0].frame_id + vfe_dev->
		axi_data.src_info[VFE_PIX_0].sof_counter_step) ||
		(frame_id <= vfe_dev->
		axi_data.src_info[VFE_PIX_0].eof_id + 1))) ||
		((!vfe_dev->axi_data.src_info[VFE_PIX_0].active) && (frame_id !=
		((frame_src != VFE_PIX_0) && (frame_id !=
		vfe_dev->axi_data.src_info[frame_src].frame_id + vfe_dev->
		axi_data.src_info[frame_src].sof_counter_step)) ||
		stream_info->undelivered_request_cnt >= MAX_BUFFERS_IN_HW) {
+3 −0
Original line number Diff line number Diff line
@@ -497,6 +497,9 @@ static int msm_isp_cfg_rdi(struct vfe_device *vfe_dev,
		return -EINVAL;
	}

	vfe_dev->axi_data.
		src_info[input_cfg->input_src].sof_counter_step = 1;

	vfe_dev->axi_data.src_info[input_cfg->input_src].pixel_clock =
		input_cfg->input_pix_clk;
	vfe_dev->hw_info->vfe_ops.core_ops.cfg_rdi_reg(