Loading drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c +25 −1 Original line number Diff line number Diff line Loading @@ -1739,6 +1739,9 @@ void msm_isp_halt_send_error(struct vfe_device *vfe_dev, uint32_t event) struct msm_vfe_axi_halt_cmd halt_cmd; struct vfe_device *temp_dev = NULL; uint32_t irq_status0 = 0, irq_status1 = 0; struct vfe_device *vfe_dev_other = NULL; uint32_t vfe_id_other = 0; unsigned long flags; if (atomic_read(&vfe_dev->error_info.overflow_state) != NO_OVERFLOW) Loading @@ -1746,7 +1749,28 @@ void msm_isp_halt_send_error(struct vfe_device *vfe_dev, uint32_t event) return; /* if there are no active streams - do not start recovery */ if (!vfe_dev->axi_data.num_active_stream) if (vfe_dev->is_split) { if (vfe_dev->pdev->id == ISP_VFE0) vfe_id_other = ISP_VFE1; else vfe_id_other = ISP_VFE0; spin_lock_irqsave( &vfe_dev->common_data->common_dev_data_lock, flags); vfe_dev_other = vfe_dev->common_data->dual_vfe_res-> vfe_dev[vfe_id_other]; if (!vfe_dev->axi_data.num_active_stream || !vfe_dev_other->axi_data.num_active_stream) { spin_unlock_irqrestore( &vfe_dev->common_data->common_dev_data_lock, flags); pr_err("%s:skip the recovery as no active streams\n", __func__); return; } spin_unlock_irqrestore( &vfe_dev->common_data->common_dev_data_lock, flags); } else if (!vfe_dev->axi_data.num_active_stream) return; if (event == ISP_EVENT_PING_PONG_MISMATCH && Loading Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c +25 −1 Original line number Diff line number Diff line Loading @@ -1739,6 +1739,9 @@ void msm_isp_halt_send_error(struct vfe_device *vfe_dev, uint32_t event) struct msm_vfe_axi_halt_cmd halt_cmd; struct vfe_device *temp_dev = NULL; uint32_t irq_status0 = 0, irq_status1 = 0; struct vfe_device *vfe_dev_other = NULL; uint32_t vfe_id_other = 0; unsigned long flags; if (atomic_read(&vfe_dev->error_info.overflow_state) != NO_OVERFLOW) Loading @@ -1746,7 +1749,28 @@ void msm_isp_halt_send_error(struct vfe_device *vfe_dev, uint32_t event) return; /* if there are no active streams - do not start recovery */ if (!vfe_dev->axi_data.num_active_stream) if (vfe_dev->is_split) { if (vfe_dev->pdev->id == ISP_VFE0) vfe_id_other = ISP_VFE1; else vfe_id_other = ISP_VFE0; spin_lock_irqsave( &vfe_dev->common_data->common_dev_data_lock, flags); vfe_dev_other = vfe_dev->common_data->dual_vfe_res-> vfe_dev[vfe_id_other]; if (!vfe_dev->axi_data.num_active_stream || !vfe_dev_other->axi_data.num_active_stream) { spin_unlock_irqrestore( &vfe_dev->common_data->common_dev_data_lock, flags); pr_err("%s:skip the recovery as no active streams\n", __func__); return; } spin_unlock_irqrestore( &vfe_dev->common_data->common_dev_data_lock, flags); } else if (!vfe_dev->axi_data.num_active_stream) return; if (event == ISP_EVENT_PING_PONG_MISMATCH && Loading