Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2cba61e6 authored by Sreesudhan Ramakrish Ramkumar's avatar Sreesudhan Ramakrish Ramkumar Committed by Matt Wagantall
Browse files

msm: camera: isp: Halt axi on IOMMU page fault.



In ISP, when we encounter an IOMMU page fault, it is an unrecoverable
error. We propagate this error to MCT and in turn to HAL so session
is shutdown and clean up can be taken care of.

Change-Id: I430506f8b55da7a4336f131e981361af8ee874b1
Signed-off-by: default avatarSreesudhan Ramakrish Ramkumar <srramku@codeaurora.org>
parent 3e3a3a1d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1581,6 +1581,11 @@ void msm_isp_update_error_frame_count(struct vfe_device *vfe_dev)
void ms_isp_process_iommu_page_fault(struct vfe_device *vfe_dev)
{
	struct msm_isp_event_data error_event;
	struct msm_vfe_axi_halt_cmd halt_cmd;

	memset(&halt_cmd, 0, sizeof(struct msm_vfe_axi_halt_cmd));
	halt_cmd.stop_camif = 1;
	halt_cmd.overflow_detected = 0;

	pr_err("%s:%d] vfe_dev %p id %d\n", __func__,
		__LINE__, vfe_dev, vfe_dev->pdev->id);
@@ -1594,6 +1599,9 @@ void ms_isp_process_iommu_page_fault(struct vfe_device *vfe_dev)
	vfe_dev->buf_mgr->ops->buf_mgr_debug(vfe_dev->buf_mgr);
	msm_isp_print_ping_pong_address(vfe_dev);
	vfe_dev->hw_info->vfe_ops.axi_ops.read_wm_ping_pong_addr(vfe_dev);

	msm_isp_axi_halt(vfe_dev, &halt_cmd);

	msm_isp_send_event(vfe_dev,
					ISP_EVENT_IOMMU_P_FAULT, &error_event);
}