Change consists creation of ADCI thread at SMCInvoke
driver initialization
Change consists creation of ADCI thread at SMCInvoke driver initialization
Following scenario have been tested for this change
(1) ADCI thread creation and QTEE invocation during driver initialization
(2) Backward Compatibility - IF ADCI feature is not supported (OBJECT_ERROR_INVALID)
then exit the ADCI thread gracefully after cleaning up all the resources
(3) Leak Test: All the resources held by ADCI thread should be released if ADCI feature
is not supported by QTEE
(i) adci task_struct state and exit state:
state = TASK_RUNNING , exit_state = 0 (While ADCI thread execution)
state = TASK_DEAD , exit_state = EXIT_DEAD (During ADCI thread termination)
(ii) adci task_struct = NULL (fetched based on adci thread_id) which make sure
task_struct has been deallocated
(4) SMCInvoke related Test: All the internal(suuported),memobj and cbo testing has been performed.
Change-Id: I2916ce260fae293b88fbc8b9d24baccdee1ea89f
Signed-off-by: Pawan Rai <quic_pawarai@quicinc.com>
A new module named qseecom_proxy has been defined in kernel
which acts as a forwarder for calls received from kernel clients
of qseecom and smcinvoke. This change adds the support for calling
that module from the vendor dlkm modules smcinvoke and qseecom.
Change-Id: I0d1aa93b9cea9e6a6e1fee17c33c78e14deb8ecf
Signed-off-by: Anmolpreet Kaur <quic_anmolpre@quicinc.com>
Return OBJECT_ERROR_BUSY if the Object is busy.
Return OBJECT_ERROR_KMEM if Out of memory.
Return OBJECT_ERROR_UNAVAIL if the request could not be processed.
Change-Id: I17b9ecd7dd817b445d84cb7d01b019497248a2a3