Lines Matching refs:optee
78 struct optee *optee = tee_get_drvdata(teedev); in optee_open() local
84 if (teedev == optee->supp_teedev) { in optee_open()
87 mutex_lock(&optee->supp.mutex); in optee_open()
88 if (!optee->supp.ctx) { in optee_open()
90 optee->supp.ctx = ctx; in optee_open()
92 mutex_unlock(&optee->supp.mutex); in optee_open()
98 if (!optee->scan_bus_done) { in optee_open()
99 INIT_WORK(&optee->scan_bus_work, optee_bus_scan); in optee_open()
100 optee->scan_bus_wq = create_workqueue("optee_bus_scan"); in optee_open()
101 if (!optee->scan_bus_wq) { in optee_open()
105 queue_work(optee->scan_bus_wq, &optee->scan_bus_work); in optee_open()
106 optee->scan_bus_done = true; in optee_open()
145 struct optee *optee = tee_get_drvdata(ctx->teedev); in optee_release_supp() local
148 if (optee->scan_bus_wq) { in optee_release_supp()
149 destroy_workqueue(optee->scan_bus_wq); in optee_release_supp()
150 optee->scan_bus_wq = NULL; in optee_release_supp()
152 optee_supp_release(&optee->supp); in optee_release_supp()
155 void optee_remove_common(struct optee *optee) in optee_remove_common() argument
164 tee_device_unregister(optee->supp_teedev); in optee_remove_common()
165 tee_device_unregister(optee->teedev); in optee_remove_common()
167 tee_shm_pool_free(optee->pool); in optee_remove_common()
168 optee_wait_queue_exit(&optee->wait_queue); in optee_remove_common()
169 optee_supp_uninit(&optee->supp); in optee_remove_common()
170 mutex_destroy(&optee->call_queue.mutex); in optee_remove_common()