aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'libdce_android.c')
-rw-r--r--libdce_android.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libdce_android.c b/libdce_android.c
index 9480926..de6a5c8 100644
--- a/libdce_android.c
+++ b/libdce_android.c
@@ -44,6 +44,7 @@
44 44
45extern MmRpc_Handle MmRpcHandle[]; 45extern MmRpc_Handle MmRpcHandle[];
46extern pthread_mutex_t ipc_mutex; 46extern pthread_mutex_t ipc_mutex;
47int is_ipc_ready = 0;
47 48
48int dce_buf_lock(int num, size_t *handle) 49int dce_buf_lock(int num, size_t *handle)
49{ 50{
@@ -53,6 +54,14 @@ int dce_buf_lock(int num, size_t *handle)
53 54
54 pthread_mutex_lock(&ipc_mutex); 55 pthread_mutex_lock(&ipc_mutex);
55 56
57 if (!is_ipc_ready) {
58 if (dce_ipc_init(IPU) != MEM_EOK) {
59 pthread_mutex_unlock(&ipc_mutex);
60 return DCE_EIPC_CALL_FAIL;
61 }
62 is_ipc_ready = 0x1234;
63 }
64
56 _ASSERT(num > 0, DCE_EINVALID_INPUT); 65 _ASSERT(num > 0, DCE_EINVALID_INPUT);
57 66
58 desc = malloc(num * sizeof(MmRpc_BufDesc)); 67 desc = malloc(num * sizeof(MmRpc_BufDesc));