Loading drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c +8 −0 Original line number Diff line number Diff line Loading @@ -672,6 +672,7 @@ static int msm_isp_update_put_buf_cnt(struct msm_isp_buf_mgr *buf_mgr, struct msm_isp_bufq *bufq = NULL; struct msm_isp_buffer *buf_info = NULL; enum msm_isp_buffer_state state; unsigned long flags; bufq = msm_isp_get_bufq(buf_mgr, bufq_handle); if (!bufq) { Loading @@ -685,6 +686,7 @@ static int msm_isp_update_put_buf_cnt(struct msm_isp_buf_mgr *buf_mgr, return rc; } spin_lock_irqsave(&bufq->bufq_lock, flags); if (bufq->buf_type != ISP_SHARE_BUF || buf_info->buf_put_count == 0) { buf_info->frame_id = frame_id; Loading @@ -697,12 +699,14 @@ static int msm_isp_update_put_buf_cnt(struct msm_isp_buf_mgr *buf_mgr, buf_info->buf_put_count++; if (buf_info->buf_put_count != ISP_SHARE_BUF_CLIENT) { rc = buf_info->buf_put_count; spin_unlock_irqrestore(&bufq->bufq_lock, flags); return rc; } } } else { pr_warn("%s: Invalid state\n", __func__); } spin_unlock_irqrestore(&bufq->bufq_lock, flags); return 0; } Loading Loading @@ -817,6 +821,7 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr, int rc = -1; struct msm_isp_bufq *bufq = NULL; struct msm_isp_buffer *buf_info = NULL; unsigned long flags; bufq = msm_isp_get_bufq(buf_mgr, bufq_handle); if (!bufq) { Loading @@ -830,6 +835,7 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr, return rc; } spin_lock_irqsave(&bufq->bufq_lock, flags); if (bufq->buf_type != ISP_SHARE_BUF || buf_info->buf_put_count == 0) { buf_info->frame_id = frame_id; Loading @@ -839,6 +845,7 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr, buf_info->buf_put_count++; if (buf_info->buf_put_count != ISP_SHARE_BUF_CLIENT) { rc = buf_info->buf_put_count; spin_unlock_irqrestore(&bufq->bufq_lock, flags); return rc; } } Loading @@ -847,6 +854,7 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr, buf_info->state = MSM_ISP_BUFFER_STATE_DIVERTED; buf_info->tv = tv; } spin_unlock_irqrestore(&bufq->bufq_lock, flags); return 0; } Loading drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c +0 −2 Original line number Diff line number Diff line Loading @@ -1268,7 +1268,6 @@ static void msm_isp_process_done_buf(struct vfe_device *vfe_dev, return; } spin_lock_irqsave(&buf->lock, flags); if (stream_info->buf_divert && rc == 0 && buf_src != MSM_ISP_BUFFER_SRC_SCRATCH) { rc = vfe_dev->buf_mgr->ops->buf_divert(vfe_dev->buf_mgr, Loading @@ -1278,7 +1277,6 @@ static void msm_isp_process_done_buf(struct vfe_device *vfe_dev, rc = vfe_dev->buf_mgr->ops->update_put_buf_cnt(vfe_dev->buf_mgr, buf->bufq_handle, buf->buf_idx, frame_id); } spin_unlock_irqrestore(&buf->lock, flags); /* Buf divert return value represent whether the buf * can be diverted. A positive return value means Loading Loading
drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c +8 −0 Original line number Diff line number Diff line Loading @@ -672,6 +672,7 @@ static int msm_isp_update_put_buf_cnt(struct msm_isp_buf_mgr *buf_mgr, struct msm_isp_bufq *bufq = NULL; struct msm_isp_buffer *buf_info = NULL; enum msm_isp_buffer_state state; unsigned long flags; bufq = msm_isp_get_bufq(buf_mgr, bufq_handle); if (!bufq) { Loading @@ -685,6 +686,7 @@ static int msm_isp_update_put_buf_cnt(struct msm_isp_buf_mgr *buf_mgr, return rc; } spin_lock_irqsave(&bufq->bufq_lock, flags); if (bufq->buf_type != ISP_SHARE_BUF || buf_info->buf_put_count == 0) { buf_info->frame_id = frame_id; Loading @@ -697,12 +699,14 @@ static int msm_isp_update_put_buf_cnt(struct msm_isp_buf_mgr *buf_mgr, buf_info->buf_put_count++; if (buf_info->buf_put_count != ISP_SHARE_BUF_CLIENT) { rc = buf_info->buf_put_count; spin_unlock_irqrestore(&bufq->bufq_lock, flags); return rc; } } } else { pr_warn("%s: Invalid state\n", __func__); } spin_unlock_irqrestore(&bufq->bufq_lock, flags); return 0; } Loading Loading @@ -817,6 +821,7 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr, int rc = -1; struct msm_isp_bufq *bufq = NULL; struct msm_isp_buffer *buf_info = NULL; unsigned long flags; bufq = msm_isp_get_bufq(buf_mgr, bufq_handle); if (!bufq) { Loading @@ -830,6 +835,7 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr, return rc; } spin_lock_irqsave(&bufq->bufq_lock, flags); if (bufq->buf_type != ISP_SHARE_BUF || buf_info->buf_put_count == 0) { buf_info->frame_id = frame_id; Loading @@ -839,6 +845,7 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr, buf_info->buf_put_count++; if (buf_info->buf_put_count != ISP_SHARE_BUF_CLIENT) { rc = buf_info->buf_put_count; spin_unlock_irqrestore(&bufq->bufq_lock, flags); return rc; } } Loading @@ -847,6 +854,7 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr, buf_info->state = MSM_ISP_BUFFER_STATE_DIVERTED; buf_info->tv = tv; } spin_unlock_irqrestore(&bufq->bufq_lock, flags); return 0; } Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c +0 −2 Original line number Diff line number Diff line Loading @@ -1268,7 +1268,6 @@ static void msm_isp_process_done_buf(struct vfe_device *vfe_dev, return; } spin_lock_irqsave(&buf->lock, flags); if (stream_info->buf_divert && rc == 0 && buf_src != MSM_ISP_BUFFER_SRC_SCRATCH) { rc = vfe_dev->buf_mgr->ops->buf_divert(vfe_dev->buf_mgr, Loading @@ -1278,7 +1277,6 @@ static void msm_isp_process_done_buf(struct vfe_device *vfe_dev, rc = vfe_dev->buf_mgr->ops->update_put_buf_cnt(vfe_dev->buf_mgr, buf->bufq_handle, buf->buf_idx, frame_id); } spin_unlock_irqrestore(&buf->lock, flags); /* Buf divert return value represent whether the buf * can be diverted. A positive return value means Loading