From 5ecf5fc78805553159a8ec2333fad4d73d5f2e00 Mon Sep 17 00:00:00 2001 From: Shilpa Mamidi Date: Wed, 24 May 2017 12:22:36 +0530 Subject: [PATCH] msm: camera: clean up buffers before detach Currently unmap of buffers is done in destroy. But we need to unmap buffers before we detach. Change-Id: I46fc31c688f7024a0fe772048b3a0da820369273 Signed-off-by: Shilpa Mamidi --- drivers/media/platform/msm/camera_v2/common/cam_smmu_api.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/media/platform/msm/camera_v2/common/cam_smmu_api.c b/drivers/media/platform/msm/camera_v2/common/cam_smmu_api.c index 9cdcabb762c0..9a53c953b16e 100644 --- a/drivers/media/platform/msm/camera_v2/common/cam_smmu_api.c +++ b/drivers/media/platform/msm/camera_v2/common/cam_smmu_api.c @@ -876,6 +876,13 @@ static int cam_smmu_detach_device(int idx) { struct cam_context_bank_info *cb = &iommu_cb_set.cb_info[idx]; + if (!list_empty_careful(&iommu_cb_set.cb_info[idx].smmu_buf_list)) { + pr_err("Client %s buffer list is not clean!\n", + iommu_cb_set.cb_info[idx].name); + cam_smmu_print_list(idx); + cam_smmu_clean_buffer_list(idx); + } + /* detach the mapping to device */ arm_iommu_detach_device(cb->dev); iommu_cb_set.cb_info[idx].state = CAM_SMMU_DETACH;