summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamesh V <ramev@codeaurora.org>2019-05-10 16:42:10 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2019-07-14 23:53:45 -0700
commitd6e3bb7367c4f47b00db4e9073e3cf7f79396d6b (patch)
tree2b1cd464d5e283c1100d0a8a6152fadfcf554eb8
parent1b2ea6cc74925fbe5f79d97cbc5f315987b52d30 (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.c14
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;