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

Commit cf33e37f authored by Neeti Desai's avatar Neeti Desai
Browse files

iommu: msm_iommu_sec: Add support for new scm_call2 API



The scm_library has added support for a new secure world
interface which is more aligned to the ARMv8 SMC calling
convention. This new api support was missing for the
dump fault register dumping code.

CRs-Fixed: 749979
Change-Id: I2b6d4f65ee6a59af677dfd109976053768de2b80
Signed-off-by: default avatarNeeti Desai <neetid@codeaurora.org>
parent f8fa637b
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@ static int msm_iommu_dump_fault_regs(int smmu_id, int cb_num,
				struct msm_scm_fault_regs_dump *regs)
{
	int ret;
	struct scm_desc desc = {0};

	struct msm_scm_fault_regs_dump_req {
		uint32_t id;
@@ -133,15 +134,19 @@ static int msm_iommu_dump_fault_regs(int smmu_id, int cb_num,
	} req_info;
	int resp = 0;

	req_info.id = smmu_id;
	req_info.cb_num = cb_num;
	req_info.buff = virt_to_phys(regs);
	req_info.len = sizeof(*regs);
	desc.args[0] = req_info.id = smmu_id;
	desc.args[1] = req_info.cb_num = cb_num;
	desc.args[2] = req_info.buff = virt_to_phys(regs);
	desc.args[3] = req_info.len = sizeof(*regs);
	desc.arginfo = SCM_ARGS(4, SCM_VAL, SCM_VAL, SCM_RW, SCM_VAL);

	dmac_clean_range(regs, regs + 1);
	if (!is_scm_armv8())
		ret = scm_call(SCM_SVC_UTIL, IOMMU_DUMP_SMMU_FAULT_REGS,
			&req_info, sizeof(req_info), &resp, 1);

	else
		ret = scm_call2(SCM_SIP_FNID(SCM_SVC_UTIL,
			IOMMU_DUMP_SMMU_FAULT_REGS), &desc);
	dmac_inv_range(regs, regs + 1);

	return ret;