summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchiz <chiz@codeaurora.org>2017-05-27 11:33:30 +0800
committerchiz <chiz@codeaurora.org>2017-06-20 16:19:26 +0800
commitfe9149471cf3220e8f66bcf8ed671b36ff1bcb4a (patch)
treec23776ee307af0a2e3603e89df0c17137643823b
parent33a94f46e5ab4eb83334bdf69bfc17155b49da7e (diff)
msm: camera: isp: fixes incorrect RDI empty frame handling
Existing empty frame reporting for RDI assumes that RDI and PIX interfaces always receive frames from one source, which is not correct. This change handles the case when one VFE is connected to two or more frame sources. Change-Id: I26c743baa0d014c166e1151d000227d6a8fc51b9 Signed-off-by: chiz <chiz@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c2
-rw-r--r--drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c3
2 files changed, 4 insertions, 1 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 f9809615b407..d6081e4c93e2 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
@@ -3433,7 +3433,7 @@ static int msm_isp_request_frame(struct vfe_device *vfe_dev,
}
if ((vfe_dev->axi_data.src_info[frame_src].active && (frame_id !=
vfe_dev->axi_data.src_info[frame_src].frame_id + vfe_dev->
- axi_data.src_info[VFE_PIX_0].sof_counter_step)) ||
+ axi_data.src_info[frame_src].sof_counter_step)) ||
((!vfe_dev->axi_data.src_info[frame_src].active))) {
pr_debug("%s:%d invalid frame id %d cur frame id %d pix %d\n",
__func__, __LINE__, frame_id,
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
index 2f8134bc3efb..b44010eb998c 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
@@ -507,6 +507,9 @@ static int msm_isp_cfg_rdi(struct vfe_device *vfe_dev,
return -EINVAL;
}
+ vfe_dev->axi_data.
+ src_info[input_cfg->input_src].sof_counter_step = 1;
+
vfe_dev->axi_data.src_info[input_cfg->input_src].pixel_clock =
input_cfg->input_pix_clk;
vfe_dev->hw_info->vfe_ops.core_ops.cfg_rdi_reg(