diff options
| author | Angga Satya Putra <anggasp@hotmail.com> | 2020-04-14 04:14:01 +0800 |
|---|---|---|
| committer | nebrassy <nebras30@gmail.com> | 2020-06-04 10:19:08 +0200 |
| commit | 2bde6c58cb093cd3487e74967653fd9cb92f5310 (patch) | |
| tree | 450c77c4116d755371029565a9657064f7c5189d | |
| parent | 863ccbea24038360f447d47f682a89bc3f62881e (diff) | |
This reverts commit bc82952bb8012641c5e74a228ab697ff6eec38e4.
Reason for revert: front camera HDR is broken with this changes.
Signed-off-by: Angga Satya Putra <anggasp@hotmail.com>
Change-Id: I28c5eee301cffdeeaa2dc43feaf9f3f82274beec
| -rw-r--r-- | drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c | 24 |
1 files changed, 14 insertions, 10 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 851667abc2ea..fc4a53b4109a 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 @@ -616,9 +616,12 @@ 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; + if (stream_info->controllable_output && drop_reconfig == 1) + stream_info->current_framedrop_period = 1; /* * re-configure the period pattern, only if it's not already * set to what we want @@ -3633,7 +3636,7 @@ static int msm_isp_request_frame(struct vfe_device *vfe_dev, (stream_info->undelivered_request_cnt <= MAX_BUFFERS_IN_HW) ) { - pr_debug("%s:%d invalid time to request frame %d try drop_reconfig\n", + pr_debug("%s:%d invalid time to request frame %d\n", __func__, __LINE__, frame_id); goto error; } else if ((vfe_dev->axi_data.src_info[frame_src].active) && @@ -3667,18 +3670,19 @@ static int msm_isp_request_frame(struct vfe_device *vfe_dev, if ((frame_src == VFE_PIX_0) && !stream_info->undelivered_request_cnt && MSM_VFE_STREAM_STOP_PERIOD != stream_info->activated_framedrop_period) { - /* wm is reloaded if undelivered_request_cnt is zero. - * As per the hw behavior wm should be disabled or skip writing - * before reload happens other wise wm could start writing from - * middle of the frame and could result in image corruption. - * instead of dropping frame in this error scenario use - * drop_reconfig flag to process the request in next sof. - */ pr_debug("%s:%d vfe %d frame_id %d prev_pattern %x stream_id %x\n", __func__, __LINE__, vfe_dev->pdev->id, frame_id, stream_info->activated_framedrop_period, stream_info->stream_id); - vfe_dev->isp_page->drop_reconfig = 1; + + rc = msm_isp_return_empty_buffer(vfe_dev, stream_info, + user_stream_id, frame_id, buf_index, frame_src); + if (rc < 0) + pr_err("%s:%d failed: return_empty_buffer src %d\n", + __func__, __LINE__, frame_src); + stream_info->current_framedrop_period = + MSM_VFE_STREAM_STOP_PERIOD; + msm_isp_cfg_framedrop_reg(stream_info); return 0; } |
