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>
This commit is contained in:
Alexander Kolesnikov 2017-01-12 20:59:05 +02:00 committed by Gerrit - the friendly Code Review server
parent 2dc96b1cbb
commit 370a1f7e66

View file

@ -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));