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

Commit d2f93c43 authored by Meera Gande's avatar Meera Gande Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: isp: Fix frame drop pattern



In few scenarios, the request frame may get
delayed and current and request frame id may
become same. While user space is informed to
delay a frame in such scenarios, the pattern
shouldn't get reset.

Change-Id: I63f1301fbbe7cba024a686cbd783af25232f1293
Signed-off-by: default avatarMeera Gande <mgande@codeaurora.org>
parent 3fd5243b
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -600,7 +600,8 @@ static int msm_isp_composite_irq(struct vfe_device *vfe_dev,
 *
 *
 * Returns void
 * Returns void
 */
 */
static void msm_isp_update_framedrop_reg(struct msm_vfe_axi_stream *stream_info)
static void msm_isp_update_framedrop_reg(struct msm_vfe_axi_stream *stream_info,
		uint32_t drop_reconfig)
{
{
	if (stream_info->stream_type == BURST_STREAM) {
	if (stream_info->stream_type == BURST_STREAM) {
		if (stream_info->runtime_num_burst_capture == 0 ||
		if (stream_info->runtime_num_burst_capture == 0 ||
@@ -610,7 +611,8 @@ static void msm_isp_update_framedrop_reg(struct msm_vfe_axi_stream *stream_info)
				MSM_VFE_STREAM_STOP_PERIOD;
				MSM_VFE_STREAM_STOP_PERIOD;
	}
	}


	if (stream_info->undelivered_request_cnt > 0)
	if (stream_info->undelivered_request_cnt > 0 &&
		drop_reconfig != 1)
		stream_info->current_framedrop_period =
		stream_info->current_framedrop_period =
			MSM_VFE_STREAM_STOP_PERIOD;
			MSM_VFE_STREAM_STOP_PERIOD;


@@ -665,7 +667,8 @@ void msm_isp_process_reg_upd_epoch_irq(struct vfe_device *vfe_dev,
			break;
			break;
		case MSM_ISP_COMP_IRQ_EPOCH:
		case MSM_ISP_COMP_IRQ_EPOCH:
			if (stream_info->state == ACTIVE)
			if (stream_info->state == ACTIVE)
				msm_isp_update_framedrop_reg(stream_info);
				msm_isp_update_framedrop_reg(stream_info,
					vfe_dev->isp_page->drop_reconfig);
			break;
			break;
		default:
		default:
			WARN(1, "Invalid irq %d\n", irq);
			WARN(1, "Invalid irq %d\n", irq);