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

Commit 287c8b13 authored by Jeyaprakash Soundrapandian's avatar Jeyaprakash Soundrapandian Committed by Gerrit - the friendly Code Review server
Browse files

Merge changes I79215f41,I1bae7c19 into dev/msm-4.9-camx

* changes:
  msm: cam: smmu: continue default arm mmu fault handler
  ARM: dts: msm: Add non-fatal-fault property for camera SMMU
parents 02aaa8b7 26f76d65
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -229,6 +229,7 @@
	qcom,cam_smmu {
		compatible = "qcom,msm-cam-smmu";
		status = "ok";
		non-fatal-fault-disabled;

		msm_cam_smmu_lrme {
			compatible = "qcom,msm-cam-smmu-cb";
+1 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@
	qcom,cam_smmu {
		compatible = "qcom,msm-cam-smmu";
		status = "ok";
		non-fatal-fault-disabled;

		msm_cam_smmu_lrme {
			compatible = "qcom,msm-cam-smmu-cb";
+4 −6
Original line number Diff line number Diff line
@@ -434,7 +434,7 @@ static int cam_smmu_iommu_fault_handler(struct iommu_domain *domain,
		CAM_ERR(CAM_SMMU, "Error: domain = %pK, device = %pK",
			domain, dev);
		CAM_ERR(CAM_SMMU, "iova = %lX, flags = %d", iova, flags);
		return 0;
		return -EINVAL;
	}

	cb_name = (char *)token;
@@ -448,12 +448,12 @@ static int cam_smmu_iommu_fault_handler(struct iommu_domain *domain,
		CAM_ERR(CAM_SMMU,
			"Error: index is not valid, index = %d, token = %s",
			idx, cb_name);
		return 0;
		return -EINVAL;
	}

	payload = kzalloc(sizeof(struct cam_smmu_work_payload), GFP_ATOMIC);
	if (!payload)
		return 0;
		return -EINVAL;

	payload->domain = domain;
	payload->dev = dev;
@@ -468,7 +468,7 @@ static int cam_smmu_iommu_fault_handler(struct iommu_domain *domain,

	schedule_work(&iommu_cb_set.smmu_work);

	return 0;
	return -EINVAL;
}

static int cam_smmu_translate_dir_to_iommu_dir(
@@ -3140,12 +3140,10 @@ static int cam_populate_smmu_context_banks(struct device *dev,
		CAM_ERR(CAM_SMMU, "Error: failed to setup cb : %s", cb->name);
		goto cb_init_fail;
	}

	if (cb->io_support && cb->mapping)
		iommu_set_fault_handler(cb->mapping->domain,
			cam_smmu_iommu_fault_handler,
			(void *)cb->name);

	/* increment count to next bank */
	iommu_cb_set.cb_init_count++;