summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Kolesnikov <akolesni@codeaurora.org>2017-01-12 20:59:05 +0200
committerGerrit - the friendly Code Review server <code-review@localhost>2017-01-12 11:01:47 -0800
commit370a1f7e6699c8fbdb16afad7d45d73bd971e518 (patch)
tree4ccd08b765de2ef7eaeb4a152742b0a501860aa2
parent2dc96b1cbbdcf5aef3780696708012d55fec57f2 (diff)
msm: camera: Add lock/unlock to "set mode" function
The change adds a synchronization mechanism to avoid concurrent access to the TZ App. CRs-Fixed: 1110588 Change-Id: I1ec37133eb7fe8c3fda498e6fe6661198163e07d Signed-off-by: Alexander Kolesnikov <akolesni@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/camera_v2/common/msm_camera_tz_util.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/platform/msm/camera_v2/common/msm_camera_tz_util.c b/drivers/media/platform/msm/camera_v2/common/msm_camera_tz_util.c
index d0843fb3a32c..79231fb314ad 100644
--- a/drivers/media/platform/msm/camera_v2/common/msm_camera_tz_util.c
+++ b/drivers/media/platform/msm/camera_v2/common/msm_camera_tz_util.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-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
@@ -295,6 +295,7 @@ int32_t msm_camera_tz_ta_set_mode(uint32_t mode,
cmd_len = sizeof(struct msm_camera_tz_set_mode_req_t);
rsp_len = sizeof(struct msm_camera_tz_set_mode_rsp_t);
+ msm_camera_tz_lock();
rc = get_cmd_rsp_buffers(ta_qseecom_handle,
(void **)&cmd, &cmd_len, (void **)&rsp, &rsp_len);
if (!rc) {
@@ -309,10 +310,12 @@ int32_t msm_camera_tz_ta_set_mode(uint32_t mode,
pr_err("%s:%d - Failed: rc=%d\n",
__func__, __LINE__,
rc);
+ msm_camera_tz_unlock();
return rc;
}
rc = rsp->rc;
}
+ msm_camera_tz_unlock();
CDBG("Done: rc=%d, Mode=0x%08X - %lluus\n",
rc, mode,
ktime_us_delta(ktime_get(), startTime));