/kernel/linux/linux-6.6/drivers/tee/optee/ |
H A D | notif.c | 21 static bool have_key(struct optee *optee, u_int key) in have_key() argument 25 list_for_each_entry(entry, &optee->notif.db, link) in have_key() 32 int optee_notif_wait(struct optee *optee, u_int key) in optee_notif_wait() argument 38 if (key > optee->notif.max_key) in optee_notif_wait() 47 spin_lock_irqsave(&optee->notif.lock, flags); in optee_notif_wait() 53 if (test_bit(key, optee->notif.bitmap)) { in optee_notif_wait() 54 clear_bit(key, optee->notif.bitmap); in optee_notif_wait() 62 if (have_key(optee, ke in optee_notif_wait() 85 optee_notif_send(struct optee *optee, u_int key) optee_notif_send() argument 109 optee_notif_init(struct optee *optee, u_int max_key) optee_notif_init() argument 122 optee_notif_uninit(struct optee *optee) optee_notif_uninit() argument [all...] |
H A D | smc_abi.c | 131 * @optee: main service struct 137 static int optee_from_msg_param(struct optee *optee, struct tee_param *params, in optee_from_msg_param() argument 221 * @optee: main service struct 227 static int optee_to_msg_param(struct optee *optee, in optee_to_msg_param() argument 279 * @optee: main service struct 281 static void optee_enable_shm_cache(struct optee *optee) in optee_enable_shm_cache() argument 286 optee_cq_wait_init(&optee in optee_enable_shm_cache() 306 __optee_disable_shm_cache(struct optee *optee, bool is_mapped) __optee_disable_shm_cache() argument 347 optee_disable_shm_cache(struct optee *optee) optee_disable_shm_cache() argument 358 optee_disable_unmapped_shm_cache(struct optee *optee) optee_disable_unmapped_shm_cache() argument 456 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_shm_register() local 522 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_shm_unregister() local 676 handle_rpc_func_cmd_shm_alloc(struct tee_context *ctx, struct optee *optee, struct optee_msg_arg *arg, struct optee_call_ctx *call_ctx) handle_rpc_func_cmd_shm_alloc() argument 788 handle_rpc_func_cmd(struct tee_context *ctx, struct optee *optee, struct optee_msg_arg *arg, struct optee_call_ctx *call_ctx) handle_rpc_func_cmd() argument 820 struct optee *optee = tee_get_drvdata(teedev); optee_handle_rpc() local 890 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_smc_do_call_with_arg() local 1016 irq_handler(struct optee *optee) irq_handler() argument 1042 struct optee *optee = dev_id; notif_irq_handler() local 1049 struct optee *optee = dev_id; notif_irq_thread_fn() local 1056 init_irq(struct optee *optee, u_int irq) init_irq() argument 1074 struct optee *optee = pcpu->optee; notif_pcpu_irq_handler() local 1087 struct optee *optee = container_of(optee_smc, struct optee, smc); notif_pcpu_irq_work_fn() local 1092 init_pcpu_irq(struct optee *optee, u_int irq) init_pcpu_irq() argument 1140 optee_smc_notif_init_irq(struct optee *optee, u_int irq) optee_smc_notif_init_irq() argument 1148 uninit_pcpu_irq(struct optee *optee) uninit_pcpu_irq() argument 1158 optee_smc_notif_uninit_irq(struct optee *optee) optee_smc_notif_uninit_irq() argument 1190 struct optee *optee = tee_get_drvdata(teedev); optee_get_version() local 1201 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_smc_open() local 1455 struct optee *optee = platform_get_drvdata(pdev); optee_smc_remove() local 1486 struct optee *optee = platform_get_drvdata(pdev); optee_shutdown() local 1609 struct optee *optee = NULL; optee_probe() local [all...] |
H A D | ffa_abi.c | 58 static struct tee_shm *optee_shm_from_ffa_handle(struct optee *optee, in optee_shm_from_ffa_handle() argument 64 mutex_lock(&optee->ffa.mutex); in optee_shm_from_ffa_handle() 65 r = rhashtable_lookup_fast(&optee->ffa.global_ids, &global_id, in optee_shm_from_ffa_handle() 69 mutex_unlock(&optee->ffa.mutex); in optee_shm_from_ffa_handle() 74 static int optee_shm_add_ffa_handle(struct optee *optee, struct tee_shm *shm, in optee_shm_add_ffa_handle() argument 86 mutex_lock(&optee->ffa.mutex); in optee_shm_add_ffa_handle() 87 rc = rhashtable_lookup_insert_fast(&optee->ffa.global_ids, &r->linkage, in optee_shm_add_ffa_handle() 89 mutex_unlock(&optee in optee_shm_add_ffa_handle() 97 optee_shm_rem_ffa_handle(struct optee *optee, u64 global_id) optee_shm_rem_ffa_handle() argument 123 from_msg_param_ffa_mem(struct optee *optee, struct tee_param *p, u32 attr, const struct optee_msg_param *mp) from_msg_param_ffa_mem() argument 155 optee_ffa_from_msg_param(struct optee *optee, struct tee_param *params, size_t num_params, const struct optee_msg_param *msg_params) optee_ffa_from_msg_param() argument 227 optee_ffa_to_msg_param(struct optee *optee, struct optee_msg_param *msg_params, size_t num_params, const struct tee_param *params) optee_ffa_to_msg_param() argument 273 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_ffa_shm_register() local 316 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_ffa_shm_unregister() local 345 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_ffa_shm_unregister_supp() local 426 handle_ffa_rpc_func_cmd_shm_alloc(struct tee_context *ctx, struct optee *optee, struct optee_msg_arg *arg) handle_ffa_rpc_func_cmd_shm_alloc() argument 466 handle_ffa_rpc_func_cmd_shm_free(struct tee_context *ctx, struct optee *optee, struct optee_msg_arg *arg) handle_ffa_rpc_func_cmd_shm_free() argument 496 handle_ffa_rpc_func_cmd(struct tee_context *ctx, struct optee *optee, struct optee_msg_arg *arg) handle_ffa_rpc_func_cmd() argument 513 optee_handle_ffa_rpc(struct tee_context *ctx, struct optee *optee, u32 cmd, struct optee_msg_arg *arg) optee_handle_ffa_rpc() argument 533 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_ffa_yielding_call() local 777 struct optee *optee = ffa_dev_get_drvdata(ffa_dev); optee_ffa_remove() local 795 struct optee *optee; optee_ffa_probe() local [all...] |
H A D | core.c | 91 struct optee *optee = tee_get_drvdata(teedev); in optee_open() local 97 if (teedev == optee->supp_teedev) { in optee_open() 100 mutex_lock(&optee->supp.mutex); in optee_open() 101 if (!optee->supp.ctx) { in optee_open() 103 optee->supp.ctx = ctx; in optee_open() 105 mutex_unlock(&optee->supp.mutex); in optee_open() 111 if (!optee->scan_bus_done) { in optee_open() 112 INIT_WORK(&optee->scan_bus_work, optee_bus_scan); in optee_open() 113 optee in optee_open() 158 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_release_supp() local 168 optee_remove_common(struct optee *optee) optee_remove_common() argument [all...] |
H A D | call.c | 34 * (optee->rpc_param_count). 135 void optee_shm_arg_cache_init(struct optee *optee, u32 flags) in optee_shm_arg_cache_init() argument 137 INIT_LIST_HEAD(&optee->shm_arg_cache.shm_args); in optee_shm_arg_cache_init() 138 mutex_init(&optee->shm_arg_cache.mutex); in optee_shm_arg_cache_init() 139 optee->shm_arg_cache.flags = flags; in optee_shm_arg_cache_init() 142 void optee_shm_arg_cache_uninit(struct optee *optee) in optee_shm_arg_cache_uninit() argument 144 struct list_head *head = &optee->shm_arg_cache.shm_args; in optee_shm_arg_cache_uninit() 147 mutex_destroy(&optee in optee_shm_arg_cache_uninit() 187 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_get_msg_arg() local 261 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_free_msg_arg() local 284 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_open_session() local 365 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_close_session_helper() local 405 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_invoke_func() local 455 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_cancel_req() local [all...] |
H A D | Makefile | 2 obj-$(CONFIG_OPTEE) += optee.o 3 optee-objs += core.o 4 optee-objs += call.o 5 optee-objs += notif.o 6 optee-objs += rpc.o 7 optee-objs += supp.o 8 optee-objs += device.o 9 optee-objs += smc_abi.o 10 optee-objs += ffa_abi.o
|
H A D | rpc.c | 39 struct optee *optee = tee_get_drvdata(ctx->teedev); in handle_rpc_func_cmd_i2c_transfer() local 64 if (optee->ops->from_msg_param(optee, params, arg->num_params, in handle_rpc_func_cmd_i2c_transfer() 108 if (optee->ops->to_msg_param(optee, arg->params, in handle_rpc_func_cmd_i2c_transfer() 130 static void handle_rpc_func_cmd_wq(struct optee *optee, in handle_rpc_func_cmd_wq() argument 142 if (optee_notif_wait(optee, arg->params[0].u.value.b)) in handle_rpc_func_cmd_wq() 146 if (optee_notif_send(optee, ar in handle_rpc_func_cmd_wq() 181 handle_rpc_supp_cmd(struct tee_context *ctx, struct optee *optee, struct optee_msg_arg *arg) handle_rpc_supp_cmd() argument 214 struct optee *optee = tee_get_drvdata(ctx->teedev); optee_rpc_cmd_alloc_suppl() local 258 optee_rpc_cmd(struct tee_context *ctx, struct optee *optee, struct optee_msg_arg *arg) optee_rpc_cmd() argument [all...] |
H A D | optee_private.h | 16 #define DRIVER_NAME "optee" 99 * @optee optee device reference 102 struct optee *optee; member 106 * struct optee_smc - optee smc communication struct 112 * @optee_pcpu per_cpu optee instance for per cpu work or NULL 143 struct optee; 158 int (*to_msg_param)(struct optee *optee, 184 struct optee { global() struct [all...] |
H A D | supp.c | 80 struct optee *optee = tee_get_drvdata(ctx->teedev); in optee_supp_thrd_req() local 81 struct optee_supp *supp = &optee->supp; in optee_supp_thrd_req() 233 struct optee *optee = tee_get_drvdata(teedev); in optee_supp_recv() local 234 struct optee_supp *supp = &optee->supp; in optee_supp_recv() 342 struct optee *optee = tee_get_drvdata(teedev); in optee_supp_send() local 343 struct optee_supp *supp = &optee->supp; in optee_supp_send()
|
H A D | optee_trace.h | 3 * optee trace points 10 #define TRACE_SYSTEM optee
|
/kernel/linux/linux-5.10/drivers/tee/optee/ |
H A D | core.c | 26 #define DRIVER_NAME "optee" 206 struct optee *optee = tee_get_drvdata(teedev); in optee_get_version() local 208 if (optee->sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM) in optee_get_version() 210 if (optee->sec_caps & OPTEE_SMC_SEC_CAP_MEMREF_NULL) in optee_get_version() 224 struct optee *optee = tee_get_drvdata(teedev); in optee_open() local 230 if (teedev == optee->supp_teedev) { in optee_open() 233 mutex_lock(&optee->supp.mutex); in optee_open() 234 if (!optee in optee_open() 271 struct optee *optee = tee_get_drvdata(teedev); optee_release() local 586 struct optee *optee = platform_get_drvdata(pdev); optee_remove() local 634 struct optee *optee = NULL; optee_probe() local [all...] |
H A D | rpc.c | 187 static void handle_rpc_func_cmd_wq(struct optee *optee, in handle_rpc_func_cmd_wq() argument 199 wq_sleep(&optee->wait_queue, arg->params[0].u.value.b); in handle_rpc_func_cmd_wq() 202 wq_wakeup(&optee->wait_queue, arg->params[0].u.value.b); in handle_rpc_func_cmd_wq() 267 struct optee *optee = tee_get_drvdata(ctx->teedev); in cmd_alloc_suppl() local 279 mutex_lock(&optee->supp.mutex); in cmd_alloc_suppl() 281 shm = tee_shm_get_from_id(optee->supp.ctx, param.u.value.c); in cmd_alloc_suppl() 282 mutex_unlock(&optee->supp.mutex); in cmd_alloc_suppl() 287 struct optee *opte in handle_rpc_func_cmd_shm_alloc() 286 handle_rpc_func_cmd_shm_alloc(struct tee_context *ctx, struct optee *optee, struct optee_msg_arg *arg, struct optee_call_ctx *call_ctx) handle_rpc_func_cmd_shm_alloc() argument 451 handle_rpc_func_cmd(struct tee_context *ctx, struct optee *optee, struct tee_shm *shm, struct optee_call_ctx *call_ctx) handle_rpc_func_cmd() argument 500 struct optee *optee = tee_get_drvdata(teedev); optee_handle_rpc() local [all...] |
H A D | call.c | 128 struct optee *optee = tee_get_drvdata(ctx->teedev); in optee_do_call_with_arg() local 137 optee_cq_wait_init(&optee->call_queue, &w); in optee_do_call_with_arg() 141 optee->invoke_fn(param.a0, param.a1, param.a2, param.a3, in optee_do_call_with_arg() 150 optee_cq_wait_for_completion(&optee->call_queue, &w); in optee_do_call_with_arg() 170 optee_cq_wait_final(&optee->call_queue, &w); in optee_do_call_with_arg() 395 * @optee: main service struct 397 void optee_enable_shm_cache(struct optee *optee) in optee_enable_shm_cache() argument 402 optee_cq_wait_init(&optee in optee_enable_shm_cache() 422 __optee_disable_shm_cache(struct optee *optee, bool is_mapped) __optee_disable_shm_cache() argument 463 optee_disable_shm_cache(struct optee *optee) optee_disable_shm_cache() argument 474 optee_disable_unmapped_shm_cache(struct optee *optee) optee_disable_unmapped_shm_cache() argument [all...] |
H A D | optee_private.h | 70 * struct optee - main service struct 84 * @scan_bus_wq workqueue to scan optee bus and register optee drivers 85 * @scan_bus_work workq to scan optee bus and register optee drivers 87 struct optee { struct 162 void optee_enable_shm_cache(struct optee *optee); 163 void optee_disable_shm_cache(struct optee *optee); [all...] |
H A D | supp.c | 80 struct optee *optee = tee_get_drvdata(ctx->teedev); in optee_supp_thrd_req() local 81 struct optee_supp *supp = &optee->supp; in optee_supp_thrd_req() 233 struct optee *optee = tee_get_drvdata(teedev); in optee_supp_recv() local 234 struct optee_supp *supp = &optee->supp; in optee_supp_recv() 342 struct optee *optee = tee_get_drvdata(teedev); in optee_supp_send() local 343 struct optee_supp *supp = &optee->supp; in optee_supp_send()
|
/kernel/linux/linux-6.6/drivers/firmware/arm_scmi/ |
H A D | Makefile | 12 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_OPTEE) += optee.o
|
/kernel/linux/linux-5.10/drivers/char/hw_random/ |
H A D | Makefile | 45 obj-$(CONFIG_HW_RANDOM_OPTEE) += optee-rng.o
|
/kernel/linux/linux-6.6/drivers/char/hw_random/ |
H A D | Makefile | 44 obj-$(CONFIG_HW_RANDOM_OPTEE) += optee-rng.o
|
/kernel/linux/linux-6.6/drivers/nvmem/ |
H A D | Makefile | 69 nvmem_stm32_romem-$(CONFIG_NVMEM_STM32_BSEC_OPTEE_TA) += stm32-bsec-optee-ta.o
|
/kernel/linux/linux-6.6/drivers/rtc/ |
H A D | Makefile | 118 obj-$(CONFIG_RTC_DRV_OPTEE) += rtc-optee.o
|