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

Commit 78e048f8 authored by Rajeev Kulkarni's avatar Rajeev Kulkarni
Browse files

mm:camera: Do not detach isp node during smmu detach.



After smmu detach, isp registers become unavailable in
secure camera usecase. In this case if user space tries
to access isp registers after detach, it results in
violation. Detach will happen when isp node is closed,
since after close the user driver will not access isp
at all.

CRs-Fixed: 2004677
Change-Id: Icf707b3bfcd7f8b62b97f784db780a1c19ae8cab
Signed-off-by: default avatarRajeev Kulkarni <krajeev@codeaurora.org>
parent 37c5f804
Loading
Loading
Loading
Loading
+1 −21
Original line number Diff line number Diff line
/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -1179,26 +1179,6 @@ int msm_isp_smmu_attach(struct msm_isp_buf_mgr *buf_mgr,
		rc = msm_isp_buf_get_scratch(buf_mgr);
		if (rc)
			goto err2;
	} else {
		if (buf_mgr->attach_ref_cnt > 0)
			buf_mgr->attach_ref_cnt--;
		else
			pr_err("%s: Error! Invalid ref_cnt %d\n",
				__func__, buf_mgr->attach_ref_cnt);

		if (buf_mgr->attach_ref_cnt == 0) {
			rc = msm_isp_buf_put_scratch(buf_mgr);
			if (buf_mgr->secure_enable == SECURE_MODE)
				rc |= cam_smmu_ops(buf_mgr->iommu_hdl,
					CAM_SMMU_DETACH_SEC_VFE_NS_STATS);
			else
				rc |= cam_smmu_ops(buf_mgr->iommu_hdl,
					CAM_SMMU_DETACH);
			if (rc < 0) {
				pr_err("%s: img/stats smmu detach error, rc :%d\n",
					__func__, rc);
			}
		}
	}

	mutex_unlock(&buf_mgr->lock);