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

Commit a6acefc7 authored by Rishabh Jain's avatar Rishabh Jain
Browse files

msm: camera: ope: Fix OPE hang dump



OPE is using memhandle to fill bl information.
So, updating the hang dump logic to use memhandle
instead of iova address to fill bl related information.
IOVA address will be fetched from memhandle inside
dump logic.

CRs-Fixed: 2655671
Change-Id: I536aef71050964c985db359662732f26f026c3d8
Signed-off-by: default avatarRishabh Jain <risjai@codeaurora.org>
parent 77887564
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -536,13 +536,21 @@ static int cam_ope_dump_bls(struct cam_ope_request *ope_req,
	struct cam_ope_hang_dump *dump)
{
	struct cam_cdm_bl_request *cdm_cmd;
	int i;
	size_t size;
	int i, rc;
	dma_addr_t iova_addr;

	cdm_cmd = ope_req->cdm_cmd;
	for (i = 0; i < cdm_cmd->cmd_arrary_count; i++) {
		rc = cam_mem_get_io_buf(cdm_cmd->cmd[i].bl_addr.mem_handle,
				ope_hw_mgr->iommu_hdl, &iova_addr, &size);
		if (rc) {
			CAM_ERR(CAM_OPE, "get io buf fail 0x%x",
				cdm_cmd->cmd[i].bl_addr.mem_handle);
			return rc;
		}
		dump->bl_entries[dump->num_bls].base =
			(uint32_t)cdm_cmd->cmd[i].bl_addr.hw_iova +
			cdm_cmd->cmd[i].offset;
			(uint32_t)iova_addr + cdm_cmd->cmd[i].offset;
		dump->bl_entries[dump->num_bls].len = cdm_cmd->cmd[i].len;
		dump->bl_entries[dump->num_bls].arbitration =
			cdm_cmd->cmd[i].arbitrate;