Loading drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c +3 −3 Original line number Diff line number Diff line Loading @@ -1160,7 +1160,7 @@ static int msm_isp_init_isp_buf_mgr( goto get_handle_error2; } buf_mgr->buf_handle_cnt = 0; buf_mgr->pagefault_debug = 0; buf_mgr->pagefault_debug_disable = 0; buf_mgr->frameId_mismatch_recovery = 0; mutex_unlock(&buf_mgr->lock); return 0; Loading Loading @@ -1188,7 +1188,7 @@ static int msm_isp_deinit_isp_buf_mgr( msm_isp_release_all_bufq(buf_mgr); kfree(buf_mgr->bufq); buf_mgr->num_buf_q = 0; buf_mgr->pagefault_debug = 0; buf_mgr->pagefault_debug_disable = 0; cam_smmu_ops(buf_mgr->img_iommu_hdl, CAM_SMMU_DETACH); cam_smmu_ops(buf_mgr->stats_iommu_hdl, CAM_SMMU_DETACH); Loading Loading @@ -1375,7 +1375,7 @@ int msm_isp_create_isp_buf_mgr( buf_mgr->ops = &isp_buf_ops; buf_mgr->vb2_ops = vb2_ops; buf_mgr->open_count = 0; buf_mgr->pagefault_debug = 0; buf_mgr->pagefault_debug_disable = 0; buf_mgr->secure_enable = NON_SECURE_MODE; buf_mgr->attach_state = MSM_ISP_BUF_MGR_DETACH; mutex_init(&buf_mgr->lock); Loading drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.h +1 −1 Original line number Diff line number Diff line Loading @@ -164,7 +164,7 @@ struct msm_isp_buf_ops { struct msm_isp_buf_mgr { int init_done; uint32_t open_count; uint32_t pagefault_debug; uint32_t pagefault_debug_disable; uint32_t frameId_mismatch_recovery; uint16_t num_buf_q; struct msm_isp_bufq *bufq; Loading drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c +12 −13 Original line number Diff line number Diff line Loading @@ -1704,10 +1704,15 @@ void ms_isp_process_iommu_page_fault(struct vfe_device *vfe_dev) error_event.frame_id = vfe_dev->axi_data.src_info[VFE_PIX_0].frame_id; if (vfe_dev->buf_mgr->pagefault_debug_disable == 0) { vfe_dev->buf_mgr->pagefault_debug_disable = 1; vfe_dev->buf_mgr->ops->buf_mgr_debug(vfe_dev->buf_mgr, vfe_dev->page_fault_addr); msm_isp_print_ping_pong_address(vfe_dev, vfe_dev->page_fault_addr); vfe_dev->hw_info->vfe_ops.axi_ops.read_wm_ping_pong_addr(vfe_dev); msm_isp_print_ping_pong_address(vfe_dev, vfe_dev->page_fault_addr); vfe_dev->hw_info->vfe_ops.axi_ops. read_wm_ping_pong_addr(vfe_dev); } for (i = 0; i < MAX_NUM_STREAM; i++) vfe_dev->axi_data.stream_info[i].state = INACTIVE; Loading Loading @@ -1965,14 +1970,8 @@ static int msm_vfe_iommu_fault_handler(struct iommu_domain *domain, vfe_dev->axi_data.num_active_stream); goto end; } if (!vfe_dev->buf_mgr->pagefault_debug) { vfe_dev->buf_mgr->pagefault_debug = 1; msm_isp_enqueue_tasklet_cmd(vfe_dev, 0, 0, 1); } else { /* Page fault previously handled, avoid flooding logs*/ rc = 0; goto end; } } else { ISP_DBG("%s:%d] no token received: %p\n", __func__, __LINE__, token); Loading Loading @@ -2052,7 +2051,7 @@ int msm_isp_open_node(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) vfe_dev->vt_enable = 0; vfe_dev->reg_update_requested = 0; /* Register page fault handler */ vfe_dev->buf_mgr->pagefault_debug = 0; vfe_dev->buf_mgr->pagefault_debug_disable = 0; cam_smmu_reg_client_page_fault_handler( vfe_dev->buf_mgr->img_iommu_hdl, msm_vfe_iommu_fault_handler, vfe_dev); Loading Loading
drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c +3 −3 Original line number Diff line number Diff line Loading @@ -1160,7 +1160,7 @@ static int msm_isp_init_isp_buf_mgr( goto get_handle_error2; } buf_mgr->buf_handle_cnt = 0; buf_mgr->pagefault_debug = 0; buf_mgr->pagefault_debug_disable = 0; buf_mgr->frameId_mismatch_recovery = 0; mutex_unlock(&buf_mgr->lock); return 0; Loading Loading @@ -1188,7 +1188,7 @@ static int msm_isp_deinit_isp_buf_mgr( msm_isp_release_all_bufq(buf_mgr); kfree(buf_mgr->bufq); buf_mgr->num_buf_q = 0; buf_mgr->pagefault_debug = 0; buf_mgr->pagefault_debug_disable = 0; cam_smmu_ops(buf_mgr->img_iommu_hdl, CAM_SMMU_DETACH); cam_smmu_ops(buf_mgr->stats_iommu_hdl, CAM_SMMU_DETACH); Loading Loading @@ -1375,7 +1375,7 @@ int msm_isp_create_isp_buf_mgr( buf_mgr->ops = &isp_buf_ops; buf_mgr->vb2_ops = vb2_ops; buf_mgr->open_count = 0; buf_mgr->pagefault_debug = 0; buf_mgr->pagefault_debug_disable = 0; buf_mgr->secure_enable = NON_SECURE_MODE; buf_mgr->attach_state = MSM_ISP_BUF_MGR_DETACH; mutex_init(&buf_mgr->lock); Loading
drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.h +1 −1 Original line number Diff line number Diff line Loading @@ -164,7 +164,7 @@ struct msm_isp_buf_ops { struct msm_isp_buf_mgr { int init_done; uint32_t open_count; uint32_t pagefault_debug; uint32_t pagefault_debug_disable; uint32_t frameId_mismatch_recovery; uint16_t num_buf_q; struct msm_isp_bufq *bufq; Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c +12 −13 Original line number Diff line number Diff line Loading @@ -1704,10 +1704,15 @@ void ms_isp_process_iommu_page_fault(struct vfe_device *vfe_dev) error_event.frame_id = vfe_dev->axi_data.src_info[VFE_PIX_0].frame_id; if (vfe_dev->buf_mgr->pagefault_debug_disable == 0) { vfe_dev->buf_mgr->pagefault_debug_disable = 1; vfe_dev->buf_mgr->ops->buf_mgr_debug(vfe_dev->buf_mgr, vfe_dev->page_fault_addr); msm_isp_print_ping_pong_address(vfe_dev, vfe_dev->page_fault_addr); vfe_dev->hw_info->vfe_ops.axi_ops.read_wm_ping_pong_addr(vfe_dev); msm_isp_print_ping_pong_address(vfe_dev, vfe_dev->page_fault_addr); vfe_dev->hw_info->vfe_ops.axi_ops. read_wm_ping_pong_addr(vfe_dev); } for (i = 0; i < MAX_NUM_STREAM; i++) vfe_dev->axi_data.stream_info[i].state = INACTIVE; Loading Loading @@ -1965,14 +1970,8 @@ static int msm_vfe_iommu_fault_handler(struct iommu_domain *domain, vfe_dev->axi_data.num_active_stream); goto end; } if (!vfe_dev->buf_mgr->pagefault_debug) { vfe_dev->buf_mgr->pagefault_debug = 1; msm_isp_enqueue_tasklet_cmd(vfe_dev, 0, 0, 1); } else { /* Page fault previously handled, avoid flooding logs*/ rc = 0; goto end; } } else { ISP_DBG("%s:%d] no token received: %p\n", __func__, __LINE__, token); Loading Loading @@ -2052,7 +2051,7 @@ int msm_isp_open_node(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) vfe_dev->vt_enable = 0; vfe_dev->reg_update_requested = 0; /* Register page fault handler */ vfe_dev->buf_mgr->pagefault_debug = 0; vfe_dev->buf_mgr->pagefault_debug_disable = 0; cam_smmu_reg_client_page_fault_handler( vfe_dev->buf_mgr->img_iommu_hdl, msm_vfe_iommu_fault_handler, vfe_dev); Loading