From 49163060a69b9734c77e6f71d5813372195012d4 Mon Sep 17 00:00:00 2001
From: Iliya Varadzhakov <ivarad@codeaurora.org>
Date: Fri, 13 Mar 2015 07:33:18 -0700
Subject: [PATCH] msm: cpp: Update iommu handling

CPP has to check for stream state before operate iommu
contexts.

Bug: 28814652

Change-Id: I5af5d126ba929f943be815fb51f69fdb09f53d43
Signed-off-by: Iliya Varadzhakov <ivarad@codeaurora.org>
Signed-off-by: Yueyao (Nathan) Zhu <yueyao@google.com>
---
 drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c b/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c
index ef54232c87dc..ed7cb41266bd 100644
--- a/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c
+++ b/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c
@@ -1911,7 +1911,8 @@ long msm_cpp_subdev_ioctl(struct v4l2_subdev *sd,
 		break;
 	}
 	case VIDIOC_MSM_CPP_IOMMU_DETACH: {
-		if (cpp_dev->iommu_state == CPP_IOMMU_STATE_ATTACHED) {
+		if ((cpp_dev->iommu_state == CPP_IOMMU_STATE_ATTACHED) &&
+			(cpp_dev->stream_cnt == 0)) {
 			iommu_detach_device(cpp_dev->domain,
 				cpp_dev->iommu_ctx);
 			cpp_dev->iommu_state = CPP_IOMMU_STATE_DETACHED;
-- 
GitLab