diff options
| author | Ramesh V <ramev@codeaurora.org> | 2019-05-10 16:42:10 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-07-14 23:53:45 -0700 |
| commit | d6e3bb7367c4f47b00db4e9073e3cf7f79396d6b (patch) | |
| tree | 2b1cd464d5e283c1100d0a8a6152fadfcf554eb8 | |
| parent | 1b2ea6cc74925fbe5f79d97cbc5f315987b52d30 (diff) | |
msm: camera_v2: Add frame drop notify
In dual vfe mode set frame drop notify mask to
vfe0 and vfe1. so that downstream camera module
will not miss frame drop notify.
Change-Id: Ida61e0041bef245dcc2c6c6f3bbbfdf982d4acbc
Signed-off-by: Ramesh V <ramev@codeaurora.org>
Signed-off-by: Sumalatha Malothu <smalot@codeaurora.org>
| -rw-r--r-- | drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c | 14 |
1 files changed, 14 insertions, 0 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 e11c68861f39..706fd8a023ad 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 @@ -20,6 +20,7 @@ #define HANDLE_TO_IDX(handle) (handle & 0xFF) #define ISP_SOF_DEBUG_COUNT 0 +#define OTHER_VFE(vfe_id) (vfe_id == ISP_VFE0 ? ISP_VFE1 : ISP_VFE0) static void msm_isp_reload_ping_pong_offset( struct msm_vfe_axi_stream *stream_info); @@ -4241,6 +4242,8 @@ void msm_isp_process_axi_irq_stream(struct vfe_device *vfe_dev, struct timeval *time_stamp; uint32_t frame_id, buf_index = -1; int vfe_idx; + struct vfe_device *temp_dev; + int other_vfe_id; if (!ts) { pr_err("%s: Error! Invalid argument\n", __func__); @@ -4363,6 +4366,17 @@ void msm_isp_process_axi_irq_stream(struct vfe_device *vfe_dev, stream_info->bufq_handle[ VFE_BUF_QUEUE_DEFAULT] & 0xFF]++; vfe_dev->error_info.framedrop_flag = 1; + if (vfe_dev->is_split) { + other_vfe_id = OTHER_VFE(vfe_dev->pdev->id); + temp_dev = + vfe_dev->common_data->dual_vfe_res->vfe_dev[ + other_vfe_id]; + temp_dev->error_info.stream_framedrop_count[ + stream_info->bufq_handle[ + VFE_BUF_QUEUE_DEFAULT] & 0xFF]++; + temp_dev->error_info.framedrop_flag = 1; + } + } spin_unlock_irqrestore(&stream_info->lock, flags); return; |
