Lines Matching full:optee

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->supp.ctx) { in optee_open()
236 optee->supp.ctx = ctx; in optee_open()
238 mutex_unlock(&optee->supp.mutex); in optee_open()
244 if (!optee->scan_bus_done) { in optee_open()
245 INIT_WORK(&optee->scan_bus_work, optee_bus_scan); in optee_open()
246 optee->scan_bus_wq = create_workqueue("optee_bus_scan"); in optee_open()
247 if (!optee->scan_bus_wq) { in optee_open()
251 queue_work(optee->scan_bus_wq, &optee->scan_bus_work); in optee_open()
252 optee->scan_bus_done = true; in optee_open()
258 if (optee->sec_caps & OPTEE_SMC_SEC_CAP_MEMREF_NULL) in optee_open()
271 struct optee *optee = tee_get_drvdata(teedev); in optee_release() local
314 if (teedev == optee->supp_teedev) { in optee_release()
315 if (optee->scan_bus_wq) { in optee_release()
316 destroy_workqueue(optee->scan_bus_wq); in optee_release()
317 optee->scan_bus_wq = NULL; in optee_release()
319 optee_supp_release(&optee->supp); in optee_release()
586 struct optee *optee = platform_get_drvdata(pdev); in optee_remove() local
596 optee_disable_shm_cache(optee); in optee_remove()
602 tee_device_unregister(optee->supp_teedev); in optee_remove()
603 tee_device_unregister(optee->teedev); in optee_remove()
605 tee_shm_pool_free(optee->pool); in optee_remove()
606 if (optee->memremaped_shm) in optee_remove()
607 memunmap(optee->memremaped_shm); in optee_remove()
608 optee_wait_queue_exit(&optee->wait_queue); in optee_remove()
609 optee_supp_uninit(&optee->supp); in optee_remove()
610 mutex_destroy(&optee->call_queue.mutex); in optee_remove()
612 kfree(optee); in optee_remove()
633 struct optee *optee = NULL; in optee_probe() local
685 optee = kzalloc(sizeof(*optee), GFP_KERNEL); in optee_probe()
686 if (!optee) { in optee_probe()
691 optee->invoke_fn = invoke_fn; in optee_probe()
692 optee->sec_caps = sec_caps; in optee_probe()
694 teedev = tee_device_alloc(&optee_desc, NULL, pool, optee); in optee_probe()
699 optee->teedev = teedev; in optee_probe()
701 teedev = tee_device_alloc(&optee_supp_desc, NULL, pool, optee); in optee_probe()
706 optee->supp_teedev = teedev; in optee_probe()
708 rc = tee_device_register(optee->teedev); in optee_probe()
712 rc = tee_device_register(optee->supp_teedev); in optee_probe()
716 mutex_init(&optee->call_queue.mutex); in optee_probe()
717 INIT_LIST_HEAD(&optee->call_queue.waiters); in optee_probe()
718 optee_wait_queue_init(&optee->wait_queue); in optee_probe()
719 optee_supp_init(&optee->supp); in optee_probe()
720 optee->memremaped_shm = memremaped_shm; in optee_probe()
721 optee->pool = pool; in optee_probe()
730 optee_disable_unmapped_shm_cache(optee); in optee_probe()
732 optee_enable_shm_cache(optee); in optee_probe()
734 if (optee->sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM) in optee_probe()
737 platform_set_drvdata(pdev, optee); in optee_probe()
748 if (optee) { in optee_probe()
754 tee_device_unregister(optee->supp_teedev); in optee_probe()
755 tee_device_unregister(optee->teedev); in optee_probe()
756 kfree(optee); in optee_probe()
766 { .compatible = "linaro,optee-tz" },
776 .name = "optee",
786 MODULE_ALIAS("platform:optee");