From cc4d1a6cb19f252e64d9c8449a317fa807ba4a6a Mon Sep 17 00:00:00 2001 From: Meera Gande Date: Tue, 16 Oct 2018 12:20:15 +0530 Subject: [PATCH] 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: Meera Gande --- .../media/platform/msm/camera_v2/isp/msm_isp_axi_util.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c index 13364905b644..79b45b6678b0 100644 --- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c +++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c @@ -596,7 +596,8 @@ static int msm_isp_composite_irq(struct vfe_device *vfe_dev, * * 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->runtime_num_burst_capture == 0 || @@ -606,7 +607,8 @@ static void msm_isp_update_framedrop_reg(struct msm_vfe_axi_stream *stream_info) 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 = MSM_VFE_STREAM_STOP_PERIOD; @@ -661,7 +663,8 @@ void msm_isp_process_reg_upd_epoch_irq(struct vfe_device *vfe_dev, break; case MSM_ISP_COMP_IRQ_EPOCH: 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; default: WARN(1, "Invalid irq %d\n", irq);