Symbol: optee
drivers/tee/optee/call.c
217
void optee_shm_arg_cache_init(struct optee *optee, u32 flags)
drivers/tee/optee/call.c
219
INIT_LIST_HEAD(&optee->shm_arg_cache.shm_args);
drivers/tee/optee/call.c
220
mutex_init(&optee->shm_arg_cache.mutex);
drivers/tee/optee/call.c
221
optee->shm_arg_cache.flags = flags;
drivers/tee/optee/call.c
224
void optee_shm_arg_cache_uninit(struct optee *optee)
drivers/tee/optee/call.c
226
struct list_head *head = &optee->shm_arg_cache.shm_args;
drivers/tee/optee/call.c
229
mutex_destroy(&optee->shm_arg_cache.mutex);
drivers/tee/optee/call.c
269
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/call.c
270
size_t sz = optee_msg_arg_size(optee->rpc_param_count);
drivers/tee/optee/call.c
281
if (optee->shm_arg_cache.flags & OPTEE_SHM_ARG_SHARED)
drivers/tee/optee/call.c
286
mutex_lock(&optee->shm_arg_cache.mutex);
drivers/tee/optee/call.c
287
list_for_each_entry(entry, &optee->shm_arg_cache.shm_args, list_node) {
drivers/tee/optee/call.c
302
if (optee->shm_arg_cache.flags & OPTEE_SHM_ARG_ALLOC_PRIV)
drivers/tee/optee/call.c
312
list_add(&entry->list_node, &optee->shm_arg_cache.shm_args);
drivers/tee/optee/call.c
328
mutex_unlock(&optee->shm_arg_cache.mutex);
drivers/tee/optee/call.c
343
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/call.c
344
size_t sz = optee_msg_arg_size(optee->rpc_param_count);
drivers/tee/optee/call.c
353
mutex_lock(&optee->shm_arg_cache.mutex);
drivers/tee/optee/call.c
359
mutex_unlock(&optee->shm_arg_cache.mutex);
drivers/tee/optee/call.c
366
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/call.c
402
rc = optee->ops->to_msg_param(optee, msg_arg->params + 2,
drivers/tee/optee/call.c
413
if (optee->ops->do_call_with_arg(ctx, shm, offs,
drivers/tee/optee/call.c
429
if (optee->ops->from_msg_param(optee, param, arg->num_params,
drivers/tee/optee/call.c
448
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/call.c
457
optee_cq_incr_sys_thread_count(&optee->call_queue))) {
drivers/tee/optee/call.c
470
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/call.c
482
optee->ops->do_call_with_arg(ctx, shm, offs, system_thread);
drivers/tee/optee/call.c
487
optee_cq_decr_sys_thread_count(&optee->call_queue);
drivers/tee/optee/call.c
515
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/call.c
543
rc = optee->ops->to_msg_param(optee, msg_arg->params, arg->num_params,
drivers/tee/optee/call.c
548
if (optee->ops->do_call_with_arg(ctx, shm, offs, system_thread)) {
drivers/tee/optee/call.c
553
if (optee->ops->from_msg_param(optee, param, arg->num_params,
drivers/tee/optee/call.c
568
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/call.c
593
optee->ops->do_call_with_arg(ctx, shm, offs, system_thread);
drivers/tee/optee/call.c
646
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/call.c
657
optee->ops->do_call_with_arg(ctx, shm, offs, false);
drivers/tee/optee/core.c
100
if (optee->in_kernel_rpmb_routing)
drivers/tee/optee/core.c
116
void optee_set_dev_group(struct optee *optee)
drivers/tee/optee/core.c
118
tee_device_set_dev_groups(optee->teedev, optee_dev_groups);
drivers/tee/optee/core.c
119
tee_device_set_dev_groups(optee->supp_teedev, optee_dev_groups);
drivers/tee/optee/core.c
126
struct optee *optee = tee_get_drvdata(teedev);
drivers/tee/optee/core.c
132
if (teedev == optee->supp_teedev) {
drivers/tee/optee/core.c
135
mutex_lock(&optee->supp.mutex);
drivers/tee/optee/core.c
136
if (!optee->supp.ctx) {
drivers/tee/optee/core.c
138
optee->supp.ctx = ctx;
drivers/tee/optee/core.c
140
mutex_unlock(&optee->supp.mutex);
drivers/tee/optee/core.c
146
if (!optee->scan_bus_done) {
drivers/tee/optee/core.c
147
INIT_WORK(&optee->scan_bus_work, optee_bus_scan);
drivers/tee/optee/core.c
148
schedule_work(&optee->scan_bus_work);
drivers/tee/optee/core.c
149
optee->scan_bus_done = true;
drivers/tee/optee/core.c
189
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/core.c
193
optee_supp_release(&optee->supp);
drivers/tee/optee/core.c
196
void optee_remove_common(struct optee *optee)
drivers/tee/optee/core.c
199
&optee->rpmb_intf);
drivers/tee/optee/core.c
200
cancel_work_sync(&optee->rpmb_scan_bus_work);
drivers/tee/optee/core.c
204
optee_notif_uninit(optee);
drivers/tee/optee/core.c
205
optee_shm_arg_cache_uninit(optee);
drivers/tee/optee/core.c
206
teedev_close_context(optee->ctx);
drivers/tee/optee/core.c
211
tee_device_unregister(optee->supp_teedev);
drivers/tee/optee/core.c
212
tee_device_unregister(optee->teedev);
drivers/tee/optee/core.c
214
tee_shm_pool_free(optee->pool);
drivers/tee/optee/core.c
215
optee_supp_uninit(&optee->supp);
drivers/tee/optee/core.c
216
mutex_destroy(&optee->call_queue.mutex);
drivers/tee/optee/core.c
217
rpmb_dev_put(optee->rpmb_dev);
drivers/tee/optee/core.c
218
mutex_destroy(&optee->rpmb_dev_mutex);
drivers/tee/optee/core.c
37
struct optee *optee = container_of(work, struct optee,
drivers/tee/optee/core.c
41
if (!optee->rpmb_scan_bus_done) {
drivers/tee/optee/core.c
43
optee->rpmb_scan_bus_done = !ret;
drivers/tee/optee/core.c
52
struct optee *optee = container_of(intf, struct optee, rpmb_intf);
drivers/tee/optee/core.c
54
schedule_work(&optee->rpmb_scan_bus_work);
drivers/tee/optee/core.c
59
int optee_set_dma_mask(struct optee *optee, u_int pa_width)
drivers/tee/optee/core.c
63
return dma_coerce_mask_and_coherent(&optee->teedev->dev, mask);
drivers/tee/optee/core.c
68
struct optee *optee = tee_get_drvdata(teedev);
drivers/tee/optee/core.c
71
if (!optee)
drivers/tee/optee/core.c
76
build_id = optee->revision.os_build_id;
drivers/tee/optee/core.c
79
optee->revision.os_major,
drivers/tee/optee/core.c
80
optee->revision.os_minor,
drivers/tee/optee/core.c
83
scnprintf(buf, len, "%u.%u", optee->revision.os_major,
drivers/tee/optee/core.c
84
optee->revision.os_minor);
drivers/tee/optee/core.c
97
struct optee *optee = dev_get_drvdata(dev);
drivers/tee/optee/ffa_abi.c
1001
optee,
drivers/tee/optee/ffa_abi.c
1018
optee->ffa.bottom_half_value = notif_id;
drivers/tee/optee/ffa_abi.c
1020
rc = enable_async_notif(optee);
drivers/tee/optee/ffa_abi.c
1028
destroy_workqueue(optee->ffa.notif_wq);
drivers/tee/optee/ffa_abi.c
103
mutex_lock(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
1030
optee->ffa.bottom_half_value = U32_MAX;
drivers/tee/optee/ffa_abi.c
1035
static int optee_ffa_protmem_pool_init(struct optee *optee, u32 sec_caps)
drivers/tee/optee/ffa_abi.c
104
r = rhashtable_lookup_fast(&optee->ffa.global_ids, &global_id,
drivers/tee/optee/ffa_abi.c
1042
pool = optee_protmem_alloc_dyn_pool(optee, id);
drivers/tee/optee/ffa_abi.c
1046
rc = tee_device_register_dma_heap(optee->teedev, id, pool);
drivers/tee/optee/ffa_abi.c
1064
struct optee *optee;
drivers/tee/optee/ffa_abi.c
107
rc = rhashtable_remove_fast(&optee->ffa.global_ids,
drivers/tee/optee/ffa_abi.c
1080
optee = kzalloc_obj(*optee);
drivers/tee/optee/ffa_abi.c
1081
if (!optee)
drivers/tee/optee/ffa_abi.c
1084
if (!optee_ffa_get_os_revision(ffa_dev, ffa_ops, &optee->revision)) {
drivers/tee/optee/ffa_abi.c
109
mutex_unlock(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
1094
optee->pool = pool;
drivers/tee/optee/ffa_abi.c
1096
optee->ops = &optee_ffa_ops;
drivers/tee/optee/ffa_abi.c
1097
optee->ffa.ffa_dev = ffa_dev;
drivers/tee/optee/ffa_abi.c
1098
optee->ffa.bottom_half_value = U32_MAX;
drivers/tee/optee/ffa_abi.c
1099
optee->rpc_param_count = rpc_param_count;
drivers/tee/optee/ffa_abi.c
1103
optee->in_kernel_rpmb_routing = true;
drivers/tee/optee/ffa_abi.c
1105
teedev = tee_device_alloc(&optee_ffa_clnt_desc, NULL, optee->pool,
drivers/tee/optee/ffa_abi.c
1106
optee);
drivers/tee/optee/ffa_abi.c
1111
optee->teedev = teedev;
drivers/tee/optee/ffa_abi.c
1113
teedev = tee_device_alloc(&optee_ffa_supp_desc, NULL, optee->pool,
drivers/tee/optee/ffa_abi.c
1114
optee);
drivers/tee/optee/ffa_abi.c
1119
optee->supp_teedev = teedev;
drivers/tee/optee/ffa_abi.c
1121
optee_set_dev_group(optee);
drivers/tee/optee/ffa_abi.c
1123
rc = tee_device_register(optee->teedev);
drivers/tee/optee/ffa_abi.c
1127
rc = tee_device_register(optee->supp_teedev);
drivers/tee/optee/ffa_abi.c
1131
rc = rhashtable_init(&optee->ffa.global_ids, &shm_rhash_params);
drivers/tee/optee/ffa_abi.c
1134
mutex_init(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
1135
optee_cq_init(&optee->call_queue, 0);
drivers/tee/optee/ffa_abi.c
1136
optee_supp_init(&optee->supp);
drivers/tee/optee/ffa_abi.c
1137
optee_shm_arg_cache_init(optee, arg_cache_flags);
drivers/tee/optee/ffa_abi.c
1138
mutex_init(&optee->rpmb_dev_mutex);
drivers/tee/optee/ffa_abi.c
1139
ffa_dev_set_drvdata(ffa_dev, optee);
drivers/tee/optee/ffa_abi.c
1140
ctx = teedev_open(optee->teedev);
drivers/tee/optee/ffa_abi.c
1145
optee->ctx = ctx;
drivers/tee/optee/ffa_abi.c
1146
rc = optee_notif_init(optee, OPTEE_DEFAULT_MAX_NOTIF_VALUE);
drivers/tee/optee/ffa_abi.c
1150
rc = optee_ffa_async_notif_init(ffa_dev, optee);
drivers/tee/optee/ffa_abi.c
1156
if (optee_ffa_protmem_pool_init(optee, sec_caps))
drivers/tee/optee/ffa_abi.c
1163
INIT_WORK(&optee->rpmb_scan_bus_work, optee_bus_scan_rpmb);
drivers/tee/optee/ffa_abi.c
1164
optee->rpmb_intf.notifier_call = optee_rpmb_intf_rdev;
drivers/tee/optee/ffa_abi.c
1166
&optee->rpmb_intf);
drivers/tee/optee/ffa_abi.c
1172
if (optee->ffa.bottom_half_value != U32_MAX)
drivers/tee/optee/ffa_abi.c
1174
optee->ffa.bottom_half_value);
drivers/tee/optee/ffa_abi.c
1175
optee_notif_uninit(optee);
drivers/tee/optee/ffa_abi.c
1179
rhashtable_free_and_destroy(&optee->ffa.global_ids, rh_free_fn, NULL);
drivers/tee/optee/ffa_abi.c
1180
rpmb_dev_put(optee->rpmb_dev);
drivers/tee/optee/ffa_abi.c
1181
mutex_destroy(&optee->rpmb_dev_mutex);
drivers/tee/optee/ffa_abi.c
1182
optee_supp_uninit(&optee->supp);
drivers/tee/optee/ffa_abi.c
1183
mutex_destroy(&optee->call_queue.mutex);
drivers/tee/optee/ffa_abi.c
1184
mutex_destroy(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
1186
tee_device_unregister(optee->supp_teedev);
drivers/tee/optee/ffa_abi.c
1188
tee_device_unregister(optee->teedev);
drivers/tee/optee/ffa_abi.c
1192
kfree(optee);
drivers/tee/optee/ffa_abi.c
124
static void from_msg_param_ffa_mem(struct optee *optee, struct tee_param *p,
drivers/tee/optee/ffa_abi.c
136
shm = optee_shm_from_ffa_handle(optee, mp->u.fmem.global_id);
drivers/tee/optee/ffa_abi.c
156
static int optee_ffa_from_msg_param(struct optee *optee,
drivers/tee/optee/ffa_abi.c
180
from_msg_param_ffa_mem(optee, p, attr, mp);
drivers/tee/optee/ffa_abi.c
228
static int optee_ffa_to_msg_param(struct optee *optee,
drivers/tee/optee/ffa_abi.c
274
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/ffa_abi.c
275
struct ffa_device *ffa_dev = optee->ffa.ffa_dev;
drivers/tee/optee/ffa_abi.c
303
rc = optee_shm_add_ffa_handle(optee, shm, args.g_handle);
drivers/tee/optee/ffa_abi.c
317
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/ffa_abi.c
318
struct ffa_device *ffa_dev = optee->ffa.ffa_dev;
drivers/tee/optee/ffa_abi.c
329
optee_shm_rem_ffa_handle(optee, global_handle);
drivers/tee/optee/ffa_abi.c
346
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/ffa_abi.c
357
optee_shm_rem_ffa_handle(optee, global_handle);
drivers/tee/optee/ffa_abi.c
358
mem_ops = optee->ffa.ffa_dev->ops->mem_ops;
drivers/tee/optee/ffa_abi.c
428
struct optee *optee,
drivers/tee/optee/ffa_abi.c
444
shm = tee_shm_alloc_priv_buf(optee->ctx,
drivers/tee/optee/ffa_abi.c
468
struct optee *optee,
drivers/tee/optee/ffa_abi.c
477
shm = optee_shm_from_ffa_handle(optee, arg->params[0].u.value.b);
drivers/tee/optee/ffa_abi.c
498
struct optee *optee,
drivers/tee/optee/ffa_abi.c
504
handle_ffa_rpc_func_cmd_shm_alloc(ctx, optee, arg);
drivers/tee/optee/ffa_abi.c
507
handle_ffa_rpc_func_cmd_shm_free(ctx, optee, arg);
drivers/tee/optee/ffa_abi.c
510
optee_rpc_cmd(ctx, optee, arg);
drivers/tee/optee/ffa_abi.c
514
static void optee_handle_ffa_rpc(struct tee_context *ctx, struct optee *optee,
drivers/tee/optee/ffa_abi.c
519
handle_ffa_rpc_func_cmd(ctx, optee, arg);
drivers/tee/optee/ffa_abi.c
535
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/ffa_abi.c
536
struct ffa_device *ffa_dev = optee->ffa.ffa_dev;
drivers/tee/optee/ffa_abi.c
546
optee_cq_wait_init(&optee->call_queue, &w, system_thread);
drivers/tee/optee/ffa_abi.c
565
optee_cq_wait_for_completion(&optee->call_queue, &w);
drivers/tee/optee/ffa_abi.c
587
optee_handle_ffa_rpc(ctx, optee, data->data1, rpc_arg);
drivers/tee/optee/ffa_abi.c
59
static struct tee_shm *optee_shm_from_ffa_handle(struct optee *optee,
drivers/tee/optee/ffa_abi.c
599
optee_cq_wait_final(&optee->call_queue, &w);
drivers/tee/optee/ffa_abi.c
65
mutex_lock(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
652
static int do_call_lend_protmem(struct optee *optee, u64 cookie, u32 use_case)
drivers/tee/optee/ffa_abi.c
66
r = rhashtable_lookup_fast(&optee->ffa.global_ids, &global_id,
drivers/tee/optee/ffa_abi.c
660
msg_arg = optee_get_msg_arg(optee->ctx, 1, &entry, &shm, &offs);
drivers/tee/optee/ffa_abi.c
669
rc = optee->ops->do_call_with_arg(optee->ctx, shm, offs, false);
drivers/tee/optee/ffa_abi.c
678
optee_free_msg_arg(optee->ctx, entry, offs);
drivers/tee/optee/ffa_abi.c
682
static int optee_ffa_lend_protmem(struct optee *optee, struct tee_shm *protmem,
drivers/tee/optee/ffa_abi.c
686
struct ffa_device *ffa_dev = optee->ffa.ffa_dev;
drivers/tee/optee/ffa_abi.c
70
mutex_unlock(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
718
rc = do_call_lend_protmem(optee, args.g_handle, use_case);
drivers/tee/optee/ffa_abi.c
722
rc = optee_shm_add_ffa_handle(optee, protmem, args.g_handle);
drivers/tee/optee/ffa_abi.c
742
static int optee_ffa_reclaim_protmem(struct optee *optee,
drivers/tee/optee/ffa_abi.c
745
struct ffa_device *ffa_dev = optee->ffa.ffa_dev;
drivers/tee/optee/ffa_abi.c
75
static int optee_shm_add_ffa_handle(struct optee *optee, struct tee_shm *shm,
drivers/tee/optee/ffa_abi.c
756
optee_shm_rem_ffa_handle(optee, global_handle);
drivers/tee/optee/ffa_abi.c
87
mutex_lock(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
872
struct optee *optee = container_of(optee_ffa, struct optee, ffa);
drivers/tee/optee/ffa_abi.c
874
optee_do_bottom_half(optee->ctx);
drivers/tee/optee/ffa_abi.c
879
struct optee *optee = cb_data;
drivers/tee/optee/ffa_abi.c
88
rc = rhashtable_lookup_insert_fast(&optee->ffa.global_ids, &r->linkage,
drivers/tee/optee/ffa_abi.c
881
if (notify_id == optee->ffa.bottom_half_value)
drivers/tee/optee/ffa_abi.c
882
queue_work(optee->ffa.notif_wq, &optee->ffa.notif_work);
drivers/tee/optee/ffa_abi.c
884
optee_notif_send(optee, notify_id);
drivers/tee/optee/ffa_abi.c
887
static int enable_async_notif(struct optee *optee)
drivers/tee/optee/ffa_abi.c
889
struct ffa_device *ffa_dev = optee->ffa.ffa_dev;
drivers/tee/optee/ffa_abi.c
892
.data1 = optee->ffa.bottom_half_value,
drivers/tee/optee/ffa_abi.c
90
mutex_unlock(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
967
struct optee *optee = ffa_dev_get_drvdata(ffa_dev);
drivers/tee/optee/ffa_abi.c
968
u32 bottom_half_id = optee->ffa.bottom_half_value;
drivers/tee/optee/ffa_abi.c
973
destroy_workqueue(optee->ffa.notif_wq);
drivers/tee/optee/ffa_abi.c
975
optee_remove_common(optee);
drivers/tee/optee/ffa_abi.c
977
mutex_destroy(&optee->ffa.mutex);
drivers/tee/optee/ffa_abi.c
978
rhashtable_free_and_destroy(&optee->ffa.global_ids, rh_free_fn, NULL);
drivers/tee/optee/ffa_abi.c
98
static int optee_shm_rem_ffa_handle(struct optee *optee, u64 global_id)
drivers/tee/optee/ffa_abi.c
980
kfree(optee);
drivers/tee/optee/ffa_abi.c
984
struct optee *optee)
drivers/tee/optee/ffa_abi.c
990
INIT_WORK(&optee->ffa.notif_work, notif_work_fn);
drivers/tee/optee/ffa_abi.c
991
optee->ffa.notif_wq = create_workqueue("optee_notification");
drivers/tee/optee/ffa_abi.c
992
if (!optee->ffa.notif_wq) {
drivers/tee/optee/notif.c
100
list_for_each_entry(entry, &optee->notif.db, link)
drivers/tee/optee/notif.c
107
set_bit(key, optee->notif.bitmap);
drivers/tee/optee/notif.c
109
spin_unlock_irqrestore(&optee->notif.lock, flags);
drivers/tee/optee/notif.c
114
int optee_notif_init(struct optee *optee, u_int max_key)
drivers/tee/optee/notif.c
116
spin_lock_init(&optee->notif.lock);
drivers/tee/optee/notif.c
117
INIT_LIST_HEAD(&optee->notif.db);
drivers/tee/optee/notif.c
118
optee->notif.bitmap = bitmap_zalloc(max_key, GFP_KERNEL);
drivers/tee/optee/notif.c
119
if (!optee->notif.bitmap)
drivers/tee/optee/notif.c
122
optee->notif.max_key = max_key;
drivers/tee/optee/notif.c
127
void optee_notif_uninit(struct optee *optee)
drivers/tee/optee/notif.c
129
bitmap_free(optee->notif.bitmap);
drivers/tee/optee/notif.c
21
static bool have_key(struct optee *optee, u_int key)
drivers/tee/optee/notif.c
25
list_for_each_entry(entry, &optee->notif.db, link)
drivers/tee/optee/notif.c
32
int optee_notif_wait(struct optee *optee, u_int key, u32 timeout)
drivers/tee/optee/notif.c
38
if (key > optee->notif.max_key)
drivers/tee/optee/notif.c
47
spin_lock_irqsave(&optee->notif.lock, flags);
drivers/tee/optee/notif.c
53
if (test_bit(key, optee->notif.bitmap)) {
drivers/tee/optee/notif.c
54
clear_bit(key, optee->notif.bitmap);
drivers/tee/optee/notif.c
62
if (have_key(optee, key)) {
drivers/tee/optee/notif.c
67
list_add_tail(&entry->link, &optee->notif.db);
drivers/tee/optee/notif.c
72
spin_unlock_irqrestore(&optee->notif.lock, flags);
drivers/tee/optee/notif.c
79
spin_lock_irqsave(&optee->notif.lock, flags);
drivers/tee/optee/notif.c
83
spin_unlock_irqrestore(&optee->notif.lock, flags);
drivers/tee/optee/notif.c
90
int optee_notif_send(struct optee *optee, u_int key)
drivers/tee/optee/notif.c
95
if (key > optee->notif.max_key)
drivers/tee/optee/notif.c
98
spin_lock_irqsave(&optee->notif.lock, flags);
drivers/tee/optee/optee_private.h
127
struct optee *optee;
drivers/tee/optee/optee_private.h
172
struct optee;
drivers/tee/optee/optee_private.h
211
int (*to_msg_param)(struct optee *optee,
drivers/tee/optee/optee_private.h
214
int (*from_msg_param)(struct optee *optee, struct tee_param *params,
drivers/tee/optee/optee_private.h
217
int (*lend_protmem)(struct optee *optee, struct tee_shm *protmem,
drivers/tee/optee/optee_private.h
220
int (*reclaim_protmem)(struct optee *optee, struct tee_shm *protmem);
drivers/tee/optee/optee_private.h
305
int optee_set_dma_mask(struct optee *optee, u_int pa_width);
drivers/tee/optee/optee_private.h
307
int optee_notif_init(struct optee *optee, u_int max_key);
drivers/tee/optee/optee_private.h
308
void optee_notif_uninit(struct optee *optee);
drivers/tee/optee/optee_private.h
309
int optee_notif_wait(struct optee *optee, u_int key, u32 timeout);
drivers/tee/optee/optee_private.h
310
int optee_notif_send(struct optee *optee, u_int key);
drivers/tee/optee/optee_private.h
318
struct tee_protmem_pool *optee_protmem_alloc_dyn_pool(struct optee *optee,
drivers/tee/optee/optee_private.h
346
void optee_set_dev_group(struct optee *optee);
drivers/tee/optee/optee_private.h
347
void optee_remove_common(struct optee *optee);
drivers/tee/optee/optee_private.h
381
void optee_shm_arg_cache_init(struct optee *optee, u32 flags);
drivers/tee/optee/optee_private.h
382
void optee_shm_arg_cache_uninit(struct optee *optee);
drivers/tee/optee/optee_private.h
395
void optee_rpc_cmd(struct tee_context *ctx, struct optee *optee,
drivers/tee/optee/optee_trace.h
10
#define TRACE_SYSTEM optee
drivers/tee/optee/protmem.c
114
rp->optee->ops->reclaim_protmem(rp->optee, rp->protmem);
drivers/tee/optee/protmem.c
18
struct optee *optee;
drivers/tee/optee/protmem.c
207
static int get_protmem_config(struct optee *optee, u32 use_case,
drivers/tee/optee/protmem.c
229
shm_param = tee_shm_alloc_priv_buf(optee->ctx,
drivers/tee/optee/protmem.c
236
msg_arg = optee_get_msg_arg(optee->ctx, ARRAY_SIZE(params), &entry,
drivers/tee/optee/protmem.c
244
rc = optee->ops->to_msg_param(optee, msg_arg->params,
drivers/tee/optee/protmem.c
249
rc = optee->ops->do_call_with_arg(optee->ctx, shm, offs, false);
drivers/tee/optee/protmem.c
257
rc = optee->ops->from_msg_param(optee, params, ARRAY_SIZE(params),
drivers/tee/optee/protmem.c
282
optee_free_msg_arg(optee->ctx, entry, offs);
drivers/tee/optee/protmem.c
289
struct tee_protmem_pool *optee_protmem_alloc_dyn_pool(struct optee *optee,
drivers/tee/optee/protmem.c
302
rc = get_protmem_config(optee, id, &min_size, &pa_width, NULL,
drivers/tee/optee/protmem.c
313
rc = get_protmem_config(optee, id, &min_size, &pa_width,
drivers/tee/optee/protmem.c
319
rc = optee_set_dma_mask(optee, pa_width);
drivers/tee/optee/protmem.c
324
rp->optee = optee;
drivers/tee/optee/protmem.c
39
rp->protmem = tee_shm_alloc_dma_mem(rp->optee->ctx, rp->page_count);
drivers/tee/optee/protmem.c
53
rc = rp->optee->ops->lend_protmem(rp->optee, rp->protmem,
drivers/tee/optee/protmem.c
78
rp->optee->ops->reclaim_protmem(rp->optee, rp->protmem);
drivers/tee/optee/rpc.c
108
if (optee->ops->to_msg_param(optee, arg->params,
drivers/tee/optee/rpc.c
130
static void handle_rpc_func_cmd_wq(struct optee *optee,
drivers/tee/optee/rpc.c
144
rc = optee_notif_wait(optee, arg->params[0].u.value.b, arg->params[0].u.value.c);
drivers/tee/optee/rpc.c
149
if (optee_notif_send(optee, arg->params[0].u.value.b))
drivers/tee/optee/rpc.c
187
static void handle_rpc_supp_cmd(struct tee_context *ctx, struct optee *optee,
drivers/tee/optee/rpc.c
200
if (optee->ops->from_msg_param(optee, params, arg->num_params,
drivers/tee/optee/rpc.c
208
if (optee->ops->to_msg_param(optee, arg->params, arg->num_params,
drivers/tee/optee/rpc.c
219
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/rpc.c
231
mutex_lock(&optee->supp.mutex);
drivers/tee/optee/rpc.c
233
shm = tee_shm_get_from_id(optee->supp.ctx, param.u.value.c);
drivers/tee/optee/rpc.c
234
mutex_unlock(&optee->supp.mutex);
drivers/tee/optee/rpc.c
264
struct optee *optee,
drivers/tee/optee/rpc.c
270
optee->ops->from_msg_param(optee, params, arg->num_params,
drivers/tee/optee/rpc.c
280
if (optee->ops->to_msg_param(optee, arg->params,
drivers/tee/optee/rpc.c
286
mutex_lock(&optee->rpmb_dev_mutex);
drivers/tee/optee/rpc.c
287
rpmb_dev_put(optee->rpmb_dev);
drivers/tee/optee/rpc.c
288
optee->rpmb_dev = NULL;
drivers/tee/optee/rpc.c
289
mutex_unlock(&optee->rpmb_dev_mutex);
drivers/tee/optee/rpc.c
316
struct optee *optee,
drivers/tee/optee/rpc.c
324
optee->ops->from_msg_param(optee, params, arg->num_params,
drivers/tee/optee/rpc.c
338
mutex_lock(&optee->rpmb_dev_mutex);
drivers/tee/optee/rpc.c
339
rdev = rpmb_dev_find_device(NULL, optee->rpmb_dev, rpc_rpmb_match);
drivers/tee/optee/rpc.c
340
rpmb_dev_put(optee->rpmb_dev);
drivers/tee/optee/rpc.c
341
optee->rpmb_dev = rdev;
drivers/tee/optee/rpc.c
342
mutex_unlock(&optee->rpmb_dev_mutex);
drivers/tee/optee/rpc.c
358
if (optee->ops->to_msg_param(optee, arg->params,
drivers/tee/optee/rpc.c
368
struct optee *optee,
drivers/tee/optee/rpc.c
375
mutex_lock(&optee->rpmb_dev_mutex);
drivers/tee/optee/rpc.c
376
rdev = rpmb_dev_get(optee->rpmb_dev);
drivers/tee/optee/rpc.c
377
mutex_unlock(&optee->rpmb_dev_mutex);
drivers/tee/optee/rpc.c
384
optee->ops->from_msg_param(optee, params, arg->num_params,
drivers/tee/optee/rpc.c
40
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/rpc.c
401
if (optee->ops->to_msg_param(optee, arg->params,
drivers/tee/optee/rpc.c
411
void optee_rpc_cmd(struct tee_context *ctx, struct optee *optee,
drivers/tee/optee/rpc.c
419
handle_rpc_func_cmd_wq(optee, arg);
drivers/tee/optee/rpc.c
438
if (optee->in_kernel_rpmb_routing)
drivers/tee/optee/rpc.c
439
handle_rpc_func_rpmb_probe_reset(ctx, optee, arg);
drivers/tee/optee/rpc.c
441
handle_rpc_supp_cmd(ctx, optee, arg);
drivers/tee/optee/rpc.c
444
if (optee->in_kernel_rpmb_routing)
drivers/tee/optee/rpc.c
445
handle_rpc_func_rpmb_probe_next(ctx, optee, arg);
drivers/tee/optee/rpc.c
447
handle_rpc_supp_cmd(ctx, optee, arg);
drivers/tee/optee/rpc.c
450
if (optee->in_kernel_rpmb_routing)
drivers/tee/optee/rpc.c
451
handle_rpc_func_rpmb_frames(ctx, optee, arg);
drivers/tee/optee/rpc.c
453
handle_rpc_supp_cmd(ctx, optee, arg);
drivers/tee/optee/rpc.c
456
handle_rpc_supp_cmd(ctx, optee, arg);
drivers/tee/optee/rpc.c
64
if (optee->ops->from_msg_param(optee, params, arg->num_params,
drivers/tee/optee/smc_abi.c
1000
optee_free_msg_arg(optee->ctx, entry, offs);
drivers/tee/optee/smc_abi.c
1004
static int optee_smc_reclaim_protmem(struct optee *optee,
drivers/tee/optee/smc_abi.c
1013
msg_arg = optee_get_msg_arg(optee->ctx, 1, &entry, &shm, &offs);
drivers/tee/optee/smc_abi.c
1021
rc = optee->ops->do_call_with_arg(optee->ctx, shm, offs, false);
drivers/tee/optee/smc_abi.c
1028
optee_free_msg_arg(optee->ctx, entry, offs);
drivers/tee/optee/smc_abi.c
1052
static irqreturn_t irq_handler(struct optee *optee)
drivers/tee/optee/smc_abi.c
1060
value = get_async_notif_value(optee->smc.invoke_fn,
drivers/tee/optee/smc_abi.c
1068
optee_notif_send(optee, value);
drivers/tee/optee/smc_abi.c
1078
struct optee *optee = dev_id;
drivers/tee/optee/smc_abi.c
1080
return irq_handler(optee);
drivers/tee/optee/smc_abi.c
1085
struct optee *optee = dev_id;
drivers/tee/optee/smc_abi.c
1087
optee_do_bottom_half(optee->ctx);
drivers/tee/optee/smc_abi.c
1092
static int init_irq(struct optee *optee, u_int irq)
drivers/tee/optee/smc_abi.c
1098
0, "optee_notification", optee);
drivers/tee/optee/smc_abi.c
1102
optee->smc.notif_irq = irq;
drivers/tee/optee/smc_abi.c
1110
struct optee *optee = pcpu->optee;
drivers/tee/optee/smc_abi.c
1112
if (irq_handler(optee) == IRQ_WAKE_THREAD)
drivers/tee/optee/smc_abi.c
1113
queue_work(optee->smc.notif_pcpu_wq,
drivers/tee/optee/smc_abi.c
1114
&optee->smc.notif_pcpu_work);
drivers/tee/optee/smc_abi.c
1123
struct optee *optee = container_of(optee_smc, struct optee, smc);
drivers/tee/optee/smc_abi.c
1125
optee_do_bottom_half(optee->ctx);
drivers/tee/optee/smc_abi.c
1128
static int init_pcpu_irq(struct optee *optee, u_int irq)
drivers/tee/optee/smc_abi.c
1138
per_cpu_ptr(optee_pcpu, cpu)->optee = optee;
drivers/tee/optee/smc_abi.c
1145
INIT_WORK(&optee->smc.notif_pcpu_work, notif_pcpu_irq_work_fn);
drivers/tee/optee/smc_abi.c
1146
optee->smc.notif_pcpu_wq = create_workqueue("optee_pcpu_notification");
drivers/tee/optee/smc_abi.c
1147
if (!optee->smc.notif_pcpu_wq) {
drivers/tee/optee/smc_abi.c
1152
optee->smc.optee_pcpu = optee_pcpu;
drivers/tee/optee/smc_abi.c
1153
optee->smc.notif_irq = irq;
drivers/tee/optee/smc_abi.c
1164
optee->smc.notif_cpuhp_state = rc;
drivers/tee/optee/smc_abi.c
1176
static int optee_smc_notif_init_irq(struct optee *optee, u_int irq)
drivers/tee/optee/smc_abi.c
1179
return init_pcpu_irq(optee, irq);
drivers/tee/optee/smc_abi.c
1181
return init_irq(optee, irq);
drivers/tee/optee/smc_abi.c
1184
static void uninit_pcpu_irq(struct optee *optee)
drivers/tee/optee/smc_abi.c
1186
cpuhp_remove_state(optee->smc.notif_cpuhp_state);
drivers/tee/optee/smc_abi.c
1188
destroy_workqueue(optee->smc.notif_pcpu_wq);
drivers/tee/optee/smc_abi.c
1190
free_percpu_irq(optee->smc.notif_irq, optee->smc.optee_pcpu);
drivers/tee/optee/smc_abi.c
1191
free_percpu(optee->smc.optee_pcpu);
drivers/tee/optee/smc_abi.c
1194
static void optee_smc_notif_uninit_irq(struct optee *optee)
drivers/tee/optee/smc_abi.c
1196
if (optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_ASYNC_NOTIF) {
drivers/tee/optee/smc_abi.c
1197
optee_stop_async_notif(optee->ctx);
drivers/tee/optee/smc_abi.c
1198
if (optee->smc.notif_irq) {
drivers/tee/optee/smc_abi.c
1199
if (irq_is_percpu_devid(optee->smc.notif_irq))
drivers/tee/optee/smc_abi.c
1200
uninit_pcpu_irq(optee);
drivers/tee/optee/smc_abi.c
1202
free_irq(optee->smc.notif_irq, optee);
drivers/tee/optee/smc_abi.c
1204
irq_dispose_mapping(optee->smc.notif_irq);
drivers/tee/optee/smc_abi.c
1226
struct optee *optee = tee_get_drvdata(teedev);
drivers/tee/optee/smc_abi.c
1228
if (optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM)
drivers/tee/optee/smc_abi.c
1230
if (optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_MEMREF_NULL)
drivers/tee/optee/smc_abi.c
1237
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/smc_abi.c
1238
u32 sec_caps = optee->smc.sec_caps;
drivers/tee/optee/smc_abi.c
138
static int optee_from_msg_param(struct optee *optee, struct tee_param *params,
drivers/tee/optee/smc_abi.c
1514
struct optee *optee = platform_get_drvdata(pdev);
drivers/tee/optee/smc_abi.c
1521
if (!optee->rpc_param_count)
drivers/tee/optee/smc_abi.c
1522
optee_disable_shm_cache(optee);
drivers/tee/optee/smc_abi.c
1524
optee_smc_notif_uninit_irq(optee);
drivers/tee/optee/smc_abi.c
1526
optee_remove_common(optee);
drivers/tee/optee/smc_abi.c
1528
if (optee->smc.memremaped_shm)
drivers/tee/optee/smc_abi.c
1529
memunmap(optee->smc.memremaped_shm);
drivers/tee/optee/smc_abi.c
1531
kfree(optee);
drivers/tee/optee/smc_abi.c
1543
struct optee *optee = platform_get_drvdata(pdev);
drivers/tee/optee/smc_abi.c
1545
if (!optee->rpc_param_count)
drivers/tee/optee/smc_abi.c
1546
optee_disable_shm_cache(optee);
drivers/tee/optee/smc_abi.c
1661
static struct tee_protmem_pool *static_protmem_pool_init(struct optee *optee)
drivers/tee/optee/smc_abi.c
1672
optee->smc.invoke_fn(OPTEE_SMC_GET_PROTMEM_CONFIG, 0, 0, 0, 0,
drivers/tee/optee/smc_abi.c
1677
rc = optee_set_dma_mask(optee, res.result.pa_width);
drivers/tee/optee/smc_abi.c
1688
p = devm_memremap(&optee->teedev->dev, res.result.start,
drivers/tee/optee/smc_abi.c
1695
devm_memunmap(&optee->teedev->dev, p);
drivers/tee/optee/smc_abi.c
1703
static int optee_protmem_pool_init(struct optee *optee)
drivers/tee/optee/smc_abi.c
1705
bool protm = optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_PROTMEM;
drivers/tee/optee/smc_abi.c
1706
bool dyn_protm = optee->smc.sec_caps &
drivers/tee/optee/smc_abi.c
1716
pool = static_protmem_pool_init(optee);
drivers/tee/optee/smc_abi.c
1718
pool = optee_protmem_alloc_dyn_pool(optee, heap_id);
drivers/tee/optee/smc_abi.c
1722
rc = tee_device_register_dma_heap(optee->teedev, heap_id, pool);
drivers/tee/optee/smc_abi.c
1733
struct optee *optee = NULL;
drivers/tee/optee/smc_abi.c
1819
optee = kzalloc_obj(*optee);
drivers/tee/optee/smc_abi.c
1820
if (!optee) {
drivers/tee/optee/smc_abi.c
1825
optee_msg_get_os_revision(invoke_fn, &optee->revision);
drivers/tee/optee/smc_abi.c
1827
optee->ops = &optee_ops;
drivers/tee/optee/smc_abi.c
1828
optee->smc.invoke_fn = invoke_fn;
drivers/tee/optee/smc_abi.c
1829
optee->smc.sec_caps = sec_caps;
drivers/tee/optee/smc_abi.c
1830
optee->rpc_param_count = rpc_param_count;
drivers/tee/optee/smc_abi.c
1834
optee->in_kernel_rpmb_routing = true;
drivers/tee/optee/smc_abi.c
1836
teedev = tee_device_alloc(&optee_clnt_desc, NULL, pool, optee);
drivers/tee/optee/smc_abi.c
1841
optee->teedev = teedev;
drivers/tee/optee/smc_abi.c
1843
teedev = tee_device_alloc(&optee_supp_desc, NULL, pool, optee);
drivers/tee/optee/smc_abi.c
1848
optee->supp_teedev = teedev;
drivers/tee/optee/smc_abi.c
1850
optee_set_dev_group(optee);
drivers/tee/optee/smc_abi.c
1852
rc = tee_device_register(optee->teedev);
drivers/tee/optee/smc_abi.c
1856
rc = tee_device_register(optee->supp_teedev);
drivers/tee/optee/smc_abi.c
1860
optee_cq_init(&optee->call_queue, thread_count);
drivers/tee/optee/smc_abi.c
1861
optee_supp_init(&optee->supp);
drivers/tee/optee/smc_abi.c
1862
optee->smc.memremaped_shm = memremaped_shm;
drivers/tee/optee/smc_abi.c
1863
optee->pool = pool;
drivers/tee/optee/smc_abi.c
1864
optee_shm_arg_cache_init(optee, arg_cache_flags);
drivers/tee/optee/smc_abi.c
1865
mutex_init(&optee->rpmb_dev_mutex);
drivers/tee/optee/smc_abi.c
1867
platform_set_drvdata(pdev, optee);
drivers/tee/optee/smc_abi.c
1868
ctx = teedev_open(optee->teedev);
drivers/tee/optee/smc_abi.c
1873
optee->ctx = ctx;
drivers/tee/optee/smc_abi.c
1874
rc = optee_notif_init(optee, max_notif_value);
drivers/tee/optee/smc_abi.c
1888
rc = optee_smc_notif_init_irq(optee, irq);
drivers/tee/optee/smc_abi.c
1893
enable_async_notif(optee->smc.invoke_fn);
drivers/tee/optee/smc_abi.c
1897
if (optee_protmem_pool_init(optee))
drivers/tee/optee/smc_abi.c
1907
optee_disable_unmapped_shm_cache(optee);
drivers/tee/optee/smc_abi.c
1913
if (!optee->rpc_param_count)
drivers/tee/optee/smc_abi.c
1914
optee_enable_shm_cache(optee);
drivers/tee/optee/smc_abi.c
1916
if (optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM)
drivers/tee/optee/smc_abi.c
1923
INIT_WORK(&optee->rpmb_scan_bus_work, optee_bus_scan_rpmb);
drivers/tee/optee/smc_abi.c
1924
optee->rpmb_intf.notifier_call = optee_rpmb_intf_rdev;
drivers/tee/optee/smc_abi.c
1926
&optee->rpmb_intf);
drivers/tee/optee/smc_abi.c
1931
if (!optee->rpc_param_count)
drivers/tee/optee/smc_abi.c
1932
optee_disable_shm_cache(optee);
drivers/tee/optee/smc_abi.c
1933
optee_smc_notif_uninit_irq(optee);
drivers/tee/optee/smc_abi.c
1936
optee_notif_uninit(optee);
drivers/tee/optee/smc_abi.c
1940
rpmb_dev_put(optee->rpmb_dev);
drivers/tee/optee/smc_abi.c
1941
mutex_destroy(&optee->rpmb_dev_mutex);
drivers/tee/optee/smc_abi.c
1942
optee_shm_arg_cache_uninit(optee);
drivers/tee/optee/smc_abi.c
1943
optee_supp_uninit(&optee->supp);
drivers/tee/optee/smc_abi.c
1944
mutex_destroy(&optee->call_queue.mutex);
drivers/tee/optee/smc_abi.c
1946
tee_device_unregister(optee->supp_teedev);
drivers/tee/optee/smc_abi.c
1948
tee_device_unregister(optee->teedev);
drivers/tee/optee/smc_abi.c
1950
kfree(optee);
drivers/tee/optee/smc_abi.c
228
static int optee_to_msg_param(struct optee *optee,
drivers/tee/optee/smc_abi.c
282
static void optee_enable_shm_cache(struct optee *optee)
drivers/tee/optee/smc_abi.c
287
optee_cq_wait_init(&optee->call_queue, &w, false);
drivers/tee/optee/smc_abi.c
291
optee->smc.invoke_fn(OPTEE_SMC_ENABLE_SHM_CACHE,
drivers/tee/optee/smc_abi.c
295
optee_cq_wait_for_completion(&optee->call_queue, &w);
drivers/tee/optee/smc_abi.c
297
optee_cq_wait_final(&optee->call_queue, &w);
drivers/tee/optee/smc_abi.c
307
static void __optee_disable_shm_cache(struct optee *optee, bool is_mapped)
drivers/tee/optee/smc_abi.c
312
optee_cq_wait_init(&optee->call_queue, &w, false);
drivers/tee/optee/smc_abi.c
319
optee->smc.invoke_fn(OPTEE_SMC_DISABLE_SHM_CACHE,
drivers/tee/optee/smc_abi.c
337
optee_cq_wait_for_completion(&optee->call_queue, &w);
drivers/tee/optee/smc_abi.c
340
optee_cq_wait_final(&optee->call_queue, &w);
drivers/tee/optee/smc_abi.c
348
static void optee_disable_shm_cache(struct optee *optee)
drivers/tee/optee/smc_abi.c
350
return __optee_disable_shm_cache(optee, true);
drivers/tee/optee/smc_abi.c
359
static void optee_disable_unmapped_shm_cache(struct optee *optee)
drivers/tee/optee/smc_abi.c
361
return __optee_disable_shm_cache(optee, false);
drivers/tee/optee/smc_abi.c
457
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/smc_abi.c
482
sz = optee_msg_arg_size(optee->rpc_param_count);
drivers/tee/optee/smc_abi.c
511
if (optee->ops->do_call_with_arg(ctx, shm_arg, 0, false) ||
drivers/tee/optee/smc_abi.c
523
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/smc_abi.c
538
sz = optee_msg_arg_size(optee->rpc_param_count);
drivers/tee/optee/smc_abi.c
554
if (optee->ops->do_call_with_arg(ctx, shm_arg, 0, false) ||
drivers/tee/optee/smc_abi.c
677
struct optee *optee,
drivers/tee/optee/smc_abi.c
708
shm = tee_shm_alloc_priv_buf(optee->ctx, sz);
drivers/tee/optee/smc_abi.c
785
static void handle_rpc_func_cmd(struct tee_context *ctx, struct optee *optee,
drivers/tee/optee/smc_abi.c
793
handle_rpc_func_cmd_shm_alloc(ctx, optee, arg, call_ctx);
drivers/tee/optee/smc_abi.c
799
optee_rpc_cmd(ctx, optee, arg);
drivers/tee/optee/smc_abi.c
818
struct optee *optee = tee_get_drvdata(teedev);
drivers/tee/optee/smc_abi.c
825
shm = tee_shm_alloc_priv_buf(optee->ctx, param->a1);
drivers/tee/optee/smc_abi.c
863
handle_rpc_func_cmd(ctx, optee, arg, call_ctx);
drivers/tee/optee/smc_abi.c
890
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/smc_abi.c
897
if (optee->rpc_param_count) {
drivers/tee/optee/smc_abi.c
929
optee_cq_wait_init(&optee->call_queue, &w, system_thread);
drivers/tee/optee/smc_abi.c
934
optee->smc.invoke_fn(param.a0, param.a1, param.a2, param.a3,
drivers/tee/optee/smc_abi.c
944
optee_cq_wait_for_completion(&optee->call_queue, &w);
drivers/tee/optee/smc_abi.c
963
optee_cq_wait_final(&optee->call_queue, &w);
drivers/tee/optee/smc_abi.c
968
static int optee_smc_lend_protmem(struct optee *optee, struct tee_shm *protmem,
drivers/tee/optee/smc_abi.c
978
msg_arg = optee_get_msg_arg(optee->ctx, 2, &entry, &shm, &offs);
drivers/tee/optee/smc_abi.c
990
rc = optee->ops->do_call_with_arg(optee->ctx, shm, offs, false);
drivers/tee/optee/supp.c
214
struct optee *optee = tee_get_drvdata(teedev);
drivers/tee/optee/supp.c
215
struct optee_supp *supp = &optee->supp;
drivers/tee/optee/supp.c
323
struct optee *optee = tee_get_drvdata(teedev);
drivers/tee/optee/supp.c
324
struct optee_supp *supp = &optee->supp;
drivers/tee/optee/supp.c
80
struct optee *optee = tee_get_drvdata(ctx->teedev);
drivers/tee/optee/supp.c
81
struct optee_supp *supp = &optee->supp;