teedev            127 drivers/tee/optee/call.c 	struct optee *optee = tee_get_drvdata(ctx->teedev);
teedev            206 drivers/tee/optee/core.c static void optee_get_version(struct tee_device *teedev,
teedev            214 drivers/tee/optee/core.c 	struct optee *optee = tee_get_drvdata(teedev);
teedev            224 drivers/tee/optee/core.c 	struct tee_device *teedev = ctx->teedev;
teedev            225 drivers/tee/optee/core.c 	struct optee *optee = tee_get_drvdata(teedev);
teedev            231 drivers/tee/optee/core.c 	if (teedev == optee->supp_teedev) {
teedev            256 drivers/tee/optee/core.c 	struct tee_device *teedev = ctx->teedev;
teedev            257 drivers/tee/optee/core.c 	struct optee *optee = tee_get_drvdata(teedev);
teedev            299 drivers/tee/optee/core.c 	if (teedev == optee->supp_teedev)
teedev            563 drivers/tee/optee/core.c 	struct tee_device *teedev;
teedev            612 drivers/tee/optee/core.c 	teedev = tee_device_alloc(&optee_desc, NULL, pool, optee);
teedev            613 drivers/tee/optee/core.c 	if (IS_ERR(teedev)) {
teedev            614 drivers/tee/optee/core.c 		rc = PTR_ERR(teedev);
teedev            617 drivers/tee/optee/core.c 	optee->teedev = teedev;
teedev            619 drivers/tee/optee/core.c 	teedev = tee_device_alloc(&optee_supp_desc, NULL, pool, optee);
teedev            620 drivers/tee/optee/core.c 	if (IS_ERR(teedev)) {
teedev            621 drivers/tee/optee/core.c 		rc = PTR_ERR(teedev);
teedev            624 drivers/tee/optee/core.c 	optee->supp_teedev = teedev;
teedev            626 drivers/tee/optee/core.c 	rc = tee_device_register(optee->teedev);
teedev            655 drivers/tee/optee/core.c 		tee_device_unregister(optee->teedev);
teedev            679 drivers/tee/optee/core.c 	tee_device_unregister(optee->teedev);
teedev             84 drivers/tee/optee/optee_private.h 	struct tee_device *teedev;
teedev            174 drivers/tee/optee/rpc.c 	struct optee *optee = tee_get_drvdata(ctx->teedev);
teedev            401 drivers/tee/optee/rpc.c 	struct tee_device *teedev = ctx->teedev;
teedev            402 drivers/tee/optee/rpc.c 	struct optee *optee = tee_get_drvdata(teedev);
teedev             80 drivers/tee/optee/supp.c 	struct optee *optee = tee_get_drvdata(ctx->teedev);
teedev            232 drivers/tee/optee/supp.c 	struct tee_device *teedev = ctx->teedev;
teedev            233 drivers/tee/optee/supp.c 	struct optee *optee = tee_get_drvdata(teedev);
teedev            341 drivers/tee/optee/supp.c 	struct tee_device *teedev = ctx->teedev;
teedev            342 drivers/tee/optee/supp.c 	struct optee *optee = tee_get_drvdata(teedev);
teedev             31 drivers/tee/tee_core.c static struct tee_context *teedev_open(struct tee_device *teedev)
teedev             36 drivers/tee/tee_core.c 	if (!tee_device_get(teedev))
teedev             46 drivers/tee/tee_core.c 	ctx->teedev = teedev;
teedev             48 drivers/tee/tee_core.c 	rc = teedev->desc->ops->open(ctx);
teedev             55 drivers/tee/tee_core.c 	tee_device_put(teedev);
teedev             73 drivers/tee/tee_core.c 	ctx->teedev->desc->ops->release(ctx);
teedev             87 drivers/tee/tee_core.c 	tee_device_put(ctx->teedev);
teedev            119 drivers/tee/tee_core.c 	ctx->teedev->desc->ops->get_version(ctx->teedev, &vers);
teedev            121 drivers/tee/tee_core.c 	if (ctx->teedev->desc->flags & TEE_DESC_PRIVILEGED)
teedev            309 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->open_session)
teedev            337 drivers/tee/tee_core.c 	rc = ctx->teedev->desc->ops->open_session(ctx, &arg, params);
teedev            354 drivers/tee/tee_core.c 	if (rc && have_session && ctx->teedev->desc->ops->close_session)
teedev            355 drivers/tee/tee_core.c 		ctx->teedev->desc->ops->close_session(ctx, arg.session);
teedev            380 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->invoke_func)
teedev            408 drivers/tee/tee_core.c 	rc = ctx->teedev->desc->ops->invoke_func(ctx, &arg, params);
teedev            435 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->cancel_req)
teedev            441 drivers/tee/tee_core.c 	return ctx->teedev->desc->ops->cancel_req(ctx, arg.cancel_id,
teedev            451 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->close_session)
teedev            457 drivers/tee/tee_core.c 	return ctx->teedev->desc->ops->close_session(ctx, arg.session);
teedev            514 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->supp_recv)
teedev            539 drivers/tee/tee_core.c 	rc = ctx->teedev->desc->ops->supp_recv(ctx, &func, &num_params, params);
teedev            612 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->supp_send)
teedev            638 drivers/tee/tee_core.c 	rc = ctx->teedev->desc->ops->supp_send(ctx, ret, num_params, params);
teedev            683 drivers/tee/tee_core.c 	struct tee_device *teedev = container_of(dev, struct tee_device, dev);
teedev            686 drivers/tee/tee_core.c 	clear_bit(teedev->id, dev_mask);
teedev            688 drivers/tee/tee_core.c 	mutex_destroy(&teedev->mutex);
teedev            689 drivers/tee/tee_core.c 	idr_destroy(&teedev->idr);
teedev            690 drivers/tee/tee_core.c 	kfree(teedev);
teedev            710 drivers/tee/tee_core.c 	struct tee_device *teedev;
teedev            720 drivers/tee/tee_core.c 	teedev = kzalloc(sizeof(*teedev), GFP_KERNEL);
teedev            721 drivers/tee/tee_core.c 	if (!teedev) {
teedev            734 drivers/tee/tee_core.c 	teedev->id = find_next_zero_bit(dev_mask, max_id, offs);
teedev            735 drivers/tee/tee_core.c 	if (teedev->id < max_id)
teedev            736 drivers/tee/tee_core.c 		set_bit(teedev->id, dev_mask);
teedev            739 drivers/tee/tee_core.c 	if (teedev->id >= max_id) {
teedev            744 drivers/tee/tee_core.c 	snprintf(teedev->name, sizeof(teedev->name), "tee%s%d",
teedev            746 drivers/tee/tee_core.c 		 teedev->id - offs);
teedev            748 drivers/tee/tee_core.c 	teedev->dev.class = tee_class;
teedev            749 drivers/tee/tee_core.c 	teedev->dev.release = tee_release_device;
teedev            750 drivers/tee/tee_core.c 	teedev->dev.parent = dev;
teedev            752 drivers/tee/tee_core.c 	teedev->dev.devt = MKDEV(MAJOR(tee_devt), teedev->id);
teedev            754 drivers/tee/tee_core.c 	rc = dev_set_name(&teedev->dev, "%s", teedev->name);
teedev            760 drivers/tee/tee_core.c 	cdev_init(&teedev->cdev, &tee_fops);
teedev            761 drivers/tee/tee_core.c 	teedev->cdev.owner = teedesc->owner;
teedev            762 drivers/tee/tee_core.c 	teedev->cdev.kobj.parent = &teedev->dev.kobj;
teedev            764 drivers/tee/tee_core.c 	dev_set_drvdata(&teedev->dev, driver_data);
teedev            765 drivers/tee/tee_core.c 	device_initialize(&teedev->dev);
teedev            768 drivers/tee/tee_core.c 	teedev->num_users = 1;
teedev            769 drivers/tee/tee_core.c 	init_completion(&teedev->c_no_users);
teedev            770 drivers/tee/tee_core.c 	mutex_init(&teedev->mutex);
teedev            771 drivers/tee/tee_core.c 	idr_init(&teedev->idr);
teedev            773 drivers/tee/tee_core.c 	teedev->desc = teedesc;
teedev            774 drivers/tee/tee_core.c 	teedev->pool = pool;
teedev            776 drivers/tee/tee_core.c 	return teedev;
teedev            778 drivers/tee/tee_core.c 	unregister_chrdev_region(teedev->dev.devt, 1);
teedev            782 drivers/tee/tee_core.c 	if (teedev && teedev->id < TEE_NUM_DEVICES) {
teedev            784 drivers/tee/tee_core.c 		clear_bit(teedev->id, dev_mask);
teedev            787 drivers/tee/tee_core.c 	kfree(teedev);
teedev            795 drivers/tee/tee_core.c 	struct tee_device *teedev = container_of(dev, struct tee_device, dev);
teedev            798 drivers/tee/tee_core.c 	teedev->desc->ops->get_version(teedev, &vers);
teedev            821 drivers/tee/tee_core.c int tee_device_register(struct tee_device *teedev)
teedev            825 drivers/tee/tee_core.c 	if (teedev->flags & TEE_DEVICE_FLAG_REGISTERED) {
teedev            826 drivers/tee/tee_core.c 		dev_err(&teedev->dev, "attempt to register twice\n");
teedev            830 drivers/tee/tee_core.c 	rc = cdev_add(&teedev->cdev, teedev->dev.devt, 1);
teedev            832 drivers/tee/tee_core.c 		dev_err(&teedev->dev,
teedev            834 drivers/tee/tee_core.c 			teedev->name, MAJOR(teedev->dev.devt),
teedev            835 drivers/tee/tee_core.c 			MINOR(teedev->dev.devt), rc);
teedev            839 drivers/tee/tee_core.c 	rc = device_add(&teedev->dev);
teedev            841 drivers/tee/tee_core.c 		dev_err(&teedev->dev,
teedev            843 drivers/tee/tee_core.c 			teedev->name, MAJOR(teedev->dev.devt),
teedev            844 drivers/tee/tee_core.c 			MINOR(teedev->dev.devt), rc);
teedev            848 drivers/tee/tee_core.c 	rc = sysfs_create_group(&teedev->dev.kobj, &tee_dev_group);
teedev            850 drivers/tee/tee_core.c 		dev_err(&teedev->dev,
teedev            855 drivers/tee/tee_core.c 	teedev->flags |= TEE_DEVICE_FLAG_REGISTERED;
teedev            859 drivers/tee/tee_core.c 	device_del(&teedev->dev);
teedev            861 drivers/tee/tee_core.c 	cdev_del(&teedev->cdev);
teedev            866 drivers/tee/tee_core.c void tee_device_put(struct tee_device *teedev)
teedev            868 drivers/tee/tee_core.c 	mutex_lock(&teedev->mutex);
teedev            870 drivers/tee/tee_core.c 	if (!WARN_ON(!teedev->desc)) {
teedev            871 drivers/tee/tee_core.c 		teedev->num_users--;
teedev            872 drivers/tee/tee_core.c 		if (!teedev->num_users) {
teedev            873 drivers/tee/tee_core.c 			teedev->desc = NULL;
teedev            874 drivers/tee/tee_core.c 			complete(&teedev->c_no_users);
teedev            877 drivers/tee/tee_core.c 	mutex_unlock(&teedev->mutex);
teedev            880 drivers/tee/tee_core.c bool tee_device_get(struct tee_device *teedev)
teedev            882 drivers/tee/tee_core.c 	mutex_lock(&teedev->mutex);
teedev            883 drivers/tee/tee_core.c 	if (!teedev->desc) {
teedev            884 drivers/tee/tee_core.c 		mutex_unlock(&teedev->mutex);
teedev            887 drivers/tee/tee_core.c 	teedev->num_users++;
teedev            888 drivers/tee/tee_core.c 	mutex_unlock(&teedev->mutex);
teedev            900 drivers/tee/tee_core.c void tee_device_unregister(struct tee_device *teedev)
teedev            902 drivers/tee/tee_core.c 	if (!teedev)
teedev            905 drivers/tee/tee_core.c 	if (teedev->flags & TEE_DEVICE_FLAG_REGISTERED) {
teedev            906 drivers/tee/tee_core.c 		sysfs_remove_group(&teedev->dev.kobj, &tee_dev_group);
teedev            907 drivers/tee/tee_core.c 		cdev_del(&teedev->cdev);
teedev            908 drivers/tee/tee_core.c 		device_del(&teedev->dev);
teedev            911 drivers/tee/tee_core.c 	tee_device_put(teedev);
teedev            912 drivers/tee/tee_core.c 	wait_for_completion(&teedev->c_no_users);
teedev            919 drivers/tee/tee_core.c 	teedev->pool = NULL;
teedev            921 drivers/tee/tee_core.c 	put_device(&teedev->dev);
teedev            930 drivers/tee/tee_core.c void *tee_get_drvdata(struct tee_device *teedev)
teedev            932 drivers/tee/tee_core.c 	return dev_get_drvdata(&teedev->dev);
teedev            945 drivers/tee/tee_core.c 	struct tee_device *teedev = container_of(dev, struct tee_device, dev);
teedev            947 drivers/tee/tee_core.c 	teedev->desc->ops->get_version(teedev, match_data->vers);
teedev            964 drivers/tee/tee_core.c 		dev = &start->teedev->dev;
teedev           1003 drivers/tee/tee_core.c 	ctx->teedev->desc->ops->get_version(ctx->teedev, vers);
teedev           1011 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->open_session)
teedev           1013 drivers/tee/tee_core.c 	return ctx->teedev->desc->ops->open_session(ctx, arg, param);
teedev           1019 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->close_session)
teedev           1021 drivers/tee/tee_core.c 	return ctx->teedev->desc->ops->close_session(ctx, session);
teedev           1029 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->invoke_func)
teedev           1031 drivers/tee/tee_core.c 	return ctx->teedev->desc->ops->invoke_func(ctx, arg, param);
teedev           1038 drivers/tee/tee_core.c 	if (!ctx->teedev->desc->ops->cancel_req)
teedev           1040 drivers/tee/tee_core.c 	return ctx->teedev->desc->ops->cancel_req(ctx, arg->cancel_id,
teedev             64 drivers/tee/tee_private.h bool tee_device_get(struct tee_device *teedev);
teedev             65 drivers/tee/tee_private.h void tee_device_put(struct tee_device *teedev);
teedev             16 drivers/tee/tee_shm.c 	struct tee_device *teedev = shm->teedev;
teedev             18 drivers/tee/tee_shm.c 	mutex_lock(&teedev->mutex);
teedev             19 drivers/tee/tee_shm.c 	idr_remove(&teedev->idr, shm->id);
teedev             22 drivers/tee/tee_shm.c 	mutex_unlock(&teedev->mutex);
teedev             28 drivers/tee/tee_shm.c 			poolm = teedev->pool->dma_buf_mgr;
teedev             30 drivers/tee/tee_shm.c 			poolm = teedev->pool->private_mgr;
teedev             35 drivers/tee/tee_shm.c 		int rc = teedev->desc->ops->shm_unregister(shm->ctx, shm);
teedev             38 drivers/tee/tee_shm.c 			dev_err(teedev->dev.parent,
teedev             52 drivers/tee/tee_shm.c 	tee_device_put(teedev);
teedev            101 drivers/tee/tee_shm.c 				       struct tee_device *teedev,
teedev            109 drivers/tee/tee_shm.c 	if (ctx && ctx->teedev != teedev) {
teedev            110 drivers/tee/tee_shm.c 		dev_err(teedev->dev.parent, "ctx and teedev mismatch\n");
teedev            115 drivers/tee/tee_shm.c 		dev_err(teedev->dev.parent,
teedev            121 drivers/tee/tee_shm.c 		dev_err(teedev->dev.parent, "invalid shm flags 0x%x", flags);
teedev            125 drivers/tee/tee_shm.c 	if (!tee_device_get(teedev))
teedev            128 drivers/tee/tee_shm.c 	if (!teedev->pool) {
teedev            141 drivers/tee/tee_shm.c 	shm->teedev = teedev;
teedev            144 drivers/tee/tee_shm.c 		poolm = teedev->pool->dma_buf_mgr;
teedev            146 drivers/tee/tee_shm.c 		poolm = teedev->pool->private_mgr;
teedev            154 drivers/tee/tee_shm.c 	mutex_lock(&teedev->mutex);
teedev            155 drivers/tee/tee_shm.c 	shm->id = idr_alloc(&teedev->idr, shm, 1, 0, GFP_KERNEL);
teedev            156 drivers/tee/tee_shm.c 	mutex_unlock(&teedev->mutex);
teedev            179 drivers/tee/tee_shm.c 		mutex_lock(&teedev->mutex);
teedev            181 drivers/tee/tee_shm.c 		mutex_unlock(&teedev->mutex);
teedev            186 drivers/tee/tee_shm.c 	mutex_lock(&teedev->mutex);
teedev            187 drivers/tee/tee_shm.c 	idr_remove(&teedev->idr, shm->id);
teedev            188 drivers/tee/tee_shm.c 	mutex_unlock(&teedev->mutex);
teedev            194 drivers/tee/tee_shm.c 	tee_device_put(teedev);
teedev            212 drivers/tee/tee_shm.c 	return __tee_shm_alloc(ctx, ctx->teedev, size, flags);
teedev            216 drivers/tee/tee_shm.c struct tee_shm *tee_shm_priv_alloc(struct tee_device *teedev, size_t size)
teedev            218 drivers/tee/tee_shm.c 	return __tee_shm_alloc(NULL, teedev, size, TEE_SHM_MAPPED);
teedev            225 drivers/tee/tee_shm.c 	struct tee_device *teedev = ctx->teedev;
teedev            236 drivers/tee/tee_shm.c 	if (!tee_device_get(teedev))
teedev            239 drivers/tee/tee_shm.c 	if (!teedev->desc->ops->shm_register ||
teedev            240 drivers/tee/tee_shm.c 	    !teedev->desc->ops->shm_unregister) {
teedev            241 drivers/tee/tee_shm.c 		tee_device_put(teedev);
teedev            254 drivers/tee/tee_shm.c 	shm->teedev = teedev;
teedev            278 drivers/tee/tee_shm.c 	mutex_lock(&teedev->mutex);
teedev            279 drivers/tee/tee_shm.c 	shm->id = idr_alloc(&teedev->idr, shm, 1, 0, GFP_KERNEL);
teedev            280 drivers/tee/tee_shm.c 	mutex_unlock(&teedev->mutex);
teedev            287 drivers/tee/tee_shm.c 	rc = teedev->desc->ops->shm_register(ctx, shm, shm->pages,
teedev            305 drivers/tee/tee_shm.c 			teedev->desc->ops->shm_unregister(ctx, shm);
teedev            310 drivers/tee/tee_shm.c 	mutex_lock(&teedev->mutex);
teedev            312 drivers/tee/tee_shm.c 	mutex_unlock(&teedev->mutex);
teedev            320 drivers/tee/tee_shm.c 			mutex_lock(&teedev->mutex);
teedev            321 drivers/tee/tee_shm.c 			idr_remove(&teedev->idr, shm->id);
teedev            322 drivers/tee/tee_shm.c 			mutex_unlock(&teedev->mutex);
teedev            332 drivers/tee/tee_shm.c 	tee_device_put(teedev);
teedev            470 drivers/tee/tee_shm.c 	struct tee_device *teedev;
teedev            476 drivers/tee/tee_shm.c 	teedev = ctx->teedev;
teedev            477 drivers/tee/tee_shm.c 	mutex_lock(&teedev->mutex);
teedev            478 drivers/tee/tee_shm.c 	shm = idr_find(&teedev->idr, id);
teedev            483 drivers/tee/tee_shm.c 	mutex_unlock(&teedev->mutex);
teedev             51 include/linux/tee_drv.h 	struct tee_device *teedev;
teedev             94 include/linux/tee_drv.h 	void (*get_version)(struct tee_device *teedev,
teedev            157 include/linux/tee_drv.h int tee_device_register(struct tee_device *teedev);
teedev            167 include/linux/tee_drv.h void tee_device_unregister(struct tee_device *teedev);
teedev            188 include/linux/tee_drv.h 	struct tee_device *teedev;
teedev            303 include/linux/tee_drv.h void *tee_get_drvdata(struct tee_device *teedev);
teedev            331 include/linux/tee_drv.h struct tee_shm *tee_shm_priv_alloc(struct tee_device *teedev, size_t size);