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

Commit 5ac11cac authored by Suresh Vankadara's avatar Suresh Vankadara
Browse files

msm: camera: smmu: Use force guard page for IPE



IPE hardware access the address beyond allocation
leads to SMMU page fault.

Use extra guard page to avoid this issue.

Change-Id: Ifcf4d46e1c6f9b2fc3e7c90fb8c88a8f303c898a
Signed-off-by: default avatarSuresh Vankadara <svankada@codeaurora.org>
parent c2e909ac
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -141,6 +141,7 @@ struct cam_iommu_cb_set {
	struct mutex payload_list_lock;
	struct list_head payload_list;
	u32 non_fatal_fault;
	u32 enable_iova_guard;
};

static const struct of_device_id msm_cam_smmu_dt_match[] = {
@@ -2912,6 +2913,15 @@ static int cam_smmu_setup_cb(struct cam_context_bank_info *cb,
				"Error: failed to set non fatal fault attribute");
		}

		if (!strcmp(cb->name, "icp")) {
			iommu_cb_set.enable_iova_guard = 1;
			if (iommu_domain_set_attr(cb->mapping->domain,
				DOMAIN_ATTR_FORCE_IOVA_GUARD_PAGE,
				&iommu_cb_set.enable_iova_guard) < 0) {
				CAM_ERR(CAM_SMMU,
					"Failed to set iova guard pagei attr");
			}
		}
	} else {
		CAM_ERR(CAM_SMMU, "Context bank does not have IO region");
		rc = -ENODEV;