diff options
| author | chiz <chiz@codeaurora.org> | 2017-05-27 11:33:30 +0800 |
|---|---|---|
| committer | chiz <chiz@codeaurora.org> | 2017-06-20 16:19:26 +0800 |
| commit | fe9149471cf3220e8f66bcf8ed671b36ff1bcb4a (patch) | |
| tree | c23776ee307af0a2e3603e89df0c17137643823b | |
| parent | 33a94f46e5ab4eb83334bdf69bfc17155b49da7e (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.c | 2 | ||||
| -rw-r--r-- | drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c | 3 |
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( |
