Loading drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c +0 −7 Original line number Diff line number Diff line Loading @@ -2091,13 +2091,6 @@ int msm_isp_axi_restart(struct vfe_device *vfe_dev, unsigned long flags; vfe_dev->buf_mgr->frameId_mismatch_recovery = 0; if (atomic_read(&vfe_dev->error_info.overflow_state) == HALT_ENFORCED) { pr_err_ratelimited("%s: no restart, halt enforced.\n", __func__); return rc; } for (i = 0, j = 0; j < axi_data->num_active_stream && i < VFE_AXI_SRC_MAX; i++, j++) { stream_info = &axi_data->stream_info[i]; Loading drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c +26 −5 Original line number Diff line number Diff line Loading @@ -973,14 +973,26 @@ static long msm_isp_ioctl_unlocked(struct v4l2_subdev *sd, break; case VIDIOC_MSM_ISP_AXI_RESET: mutex_lock(&vfe_dev->core_mutex); if (atomic_read(&vfe_dev->error_info.overflow_state) != HALT_ENFORCED) { rc = msm_isp_stats_reset(vfe_dev); rc |= msm_isp_axi_reset(vfe_dev, arg); } else { pr_err_ratelimited("%s: no HW reset, halt enforced.\n", __func__); } mutex_unlock(&vfe_dev->core_mutex); break; case VIDIOC_MSM_ISP_AXI_RESTART: mutex_lock(&vfe_dev->core_mutex); if (atomic_read(&vfe_dev->error_info.overflow_state) != HALT_ENFORCED) { rc = msm_isp_stats_restart(vfe_dev); rc |= msm_isp_axi_restart(vfe_dev, arg); } else { pr_err_ratelimited("%s: no AXI restart, halt enforced.\n", __func__); } mutex_unlock(&vfe_dev->core_mutex); break; case VIDIOC_MSM_ISP_INPUT_CFG: Loading Loading @@ -2042,7 +2054,16 @@ static int msm_vfe_iommu_fault_handler(struct iommu_domain *domain, goto end; } mutex_lock(&vfe_dev->core_mutex); if (vfe_dev->vfe_open_cnt > 0) { atomic_set(&vfe_dev->error_info.overflow_state, HALT_ENFORCED); msm_isp_enqueue_tasklet_cmd(vfe_dev, 0, 0, 1); } else { pr_err("%s: no handling, vfe open cnt = %d\n", __func__, vfe_dev->vfe_open_cnt); } mutex_unlock(&vfe_dev->core_mutex); } else { ISP_DBG("%s:%d] no token received: %p\n", __func__, __LINE__, token); Loading Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c +0 −7 Original line number Diff line number Diff line Loading @@ -2091,13 +2091,6 @@ int msm_isp_axi_restart(struct vfe_device *vfe_dev, unsigned long flags; vfe_dev->buf_mgr->frameId_mismatch_recovery = 0; if (atomic_read(&vfe_dev->error_info.overflow_state) == HALT_ENFORCED) { pr_err_ratelimited("%s: no restart, halt enforced.\n", __func__); return rc; } for (i = 0, j = 0; j < axi_data->num_active_stream && i < VFE_AXI_SRC_MAX; i++, j++) { stream_info = &axi_data->stream_info[i]; Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c +26 −5 Original line number Diff line number Diff line Loading @@ -973,14 +973,26 @@ static long msm_isp_ioctl_unlocked(struct v4l2_subdev *sd, break; case VIDIOC_MSM_ISP_AXI_RESET: mutex_lock(&vfe_dev->core_mutex); if (atomic_read(&vfe_dev->error_info.overflow_state) != HALT_ENFORCED) { rc = msm_isp_stats_reset(vfe_dev); rc |= msm_isp_axi_reset(vfe_dev, arg); } else { pr_err_ratelimited("%s: no HW reset, halt enforced.\n", __func__); } mutex_unlock(&vfe_dev->core_mutex); break; case VIDIOC_MSM_ISP_AXI_RESTART: mutex_lock(&vfe_dev->core_mutex); if (atomic_read(&vfe_dev->error_info.overflow_state) != HALT_ENFORCED) { rc = msm_isp_stats_restart(vfe_dev); rc |= msm_isp_axi_restart(vfe_dev, arg); } else { pr_err_ratelimited("%s: no AXI restart, halt enforced.\n", __func__); } mutex_unlock(&vfe_dev->core_mutex); break; case VIDIOC_MSM_ISP_INPUT_CFG: Loading Loading @@ -2042,7 +2054,16 @@ static int msm_vfe_iommu_fault_handler(struct iommu_domain *domain, goto end; } mutex_lock(&vfe_dev->core_mutex); if (vfe_dev->vfe_open_cnt > 0) { atomic_set(&vfe_dev->error_info.overflow_state, HALT_ENFORCED); msm_isp_enqueue_tasklet_cmd(vfe_dev, 0, 0, 1); } else { pr_err("%s: no handling, vfe open cnt = %d\n", __func__, vfe_dev->vfe_open_cnt); } mutex_unlock(&vfe_dev->core_mutex); } else { ISP_DBG("%s:%d] no token received: %p\n", __func__, __LINE__, token); Loading