diff options
| author | Alexander Kolesnikov <akolesni@codeaurora.org> | 2017-01-12 20:59:05 +0200 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-01-12 11:01:47 -0800 |
| commit | 370a1f7e6699c8fbdb16afad7d45d73bd971e518 (patch) | |
| tree | 4ccd08b765de2ef7eaeb4a152742b0a501860aa2 | |
| parent | 2dc96b1cbbdcf5aef3780696708012d55fec57f2 (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.c | 5 |
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)); |
