diff options
| -rw-r--r-- | drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c | 11 | ||||
| -rw-r--r-- | include/uapi/media/msmb_isp.h | 2 |
2 files changed, 10 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 1af55fe257af..9d83bf2a4ad4 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 @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -879,6 +879,9 @@ static void msm_isp_sync_dual_cam_frame_id( ms_res->src_info[i]->dual_hw_ms_info.index); } } + /* the number of frames that are dropped */ + vfe_dev->isp_page->dual_cam_drop = + frame_id - (src_info->frame_id + 1); ms_res->active_src_mask |= (1 << src_info->dual_hw_ms_info.index); src_info->frame_id = frame_id; src_info->dual_hw_ms_info.sync_state = MSM_ISP_DUAL_CAM_SYNC; @@ -916,6 +919,8 @@ void msm_isp_increment_frame_id(struct vfe_device *vfe_dev, src_info->dual_hw_ms_info.index)) { pr_err_ratelimited("Frame out of sync on vfe %d\n", vfe_dev->pdev->id); + /* Notify to do reconfig at SW sync drop*/ + vfe_dev->isp_page->dual_cam_drop_detected = 1; /* * set this isp as async mode to force *it sync again at the next sof @@ -2258,8 +2263,8 @@ static int msm_isp_process_done_buf(struct vfe_device *vfe_dev, MSM_ISP_BUFFER_STATE_PUT_BUF; buf->buf_debug.put_state_last ^= 1; rc = vfe_dev->buf_mgr->ops->buf_done(vfe_dev->buf_mgr, - buf->bufq_handle, buf->buf_idx, time_stamp, - frame_id, stream_info->runtime_output_format); + buf->bufq_handle, buf->buf_idx, time_stamp, + frame_id, stream_info->runtime_output_format); if (rc == -EFAULT) { msm_isp_halt_send_error(vfe_dev, ISP_EVENT_BUF_FATAL_ERROR); diff --git a/include/uapi/media/msmb_isp.h b/include/uapi/media/msmb_isp.h index 40e5c273011f..b1c02f297e91 100644 --- a/include/uapi/media/msmb_isp.h +++ b/include/uapi/media/msmb_isp.h @@ -33,6 +33,8 @@ struct isp_kstate { uint32_t kernel_sofid; uint32_t drop_reconfig; uint32_t vfeid; + uint32_t dual_cam_drop_detected; + uint32_t dual_cam_drop; }; enum ISP_START_PIXEL_PATTERN { |
