Lines Matching refs:tfile

128 	struct ttm_object_file *tfile;  member
134 ttm_object_file_ref(struct ttm_object_file *tfile) in ttm_object_file_ref() argument
136 kref_get(&tfile->refcount); in ttm_object_file_ref()
137 return tfile; in ttm_object_file_ref()
142 struct ttm_object_file *tfile = in ttm_object_file_destroy() local
145 kfree(tfile); in ttm_object_file_destroy()
151 struct ttm_object_file *tfile = *p_tfile; in ttm_object_file_unref() local
154 kref_put(&tfile->refcount, ttm_object_file_destroy); in ttm_object_file_unref()
158 int ttm_base_object_init(struct ttm_object_file *tfile, in ttm_base_object_init() argument
166 struct ttm_object_device *tdev = tfile->tdev; in ttm_base_object_init()
170 base->tfile = ttm_object_file_ref(tfile); in ttm_base_object_init()
183 ret = ttm_ref_object_add(tfile, base, TTM_REF_USAGE, NULL, false); in ttm_base_object_init()
203 struct ttm_object_device *tdev = base->tfile->tdev; in ttm_release_base()
215 ttm_object_file_unref(&base->tfile); in ttm_release_base()
230 struct ttm_base_object *ttm_base_object_lookup(struct ttm_object_file *tfile, in ttm_base_object_lookup() argument
235 struct drm_open_hash *ht = &tfile->ref_hash[TTM_REF_USAGE]; in ttm_base_object_lookup()
284 bool ttm_ref_object_exists(struct ttm_object_file *tfile, in ttm_ref_object_exists() argument
287 struct drm_open_hash *ht = &tfile->ref_hash[TTM_REF_USAGE]; in ttm_ref_object_exists()
320 int ttm_ref_object_add(struct ttm_object_file *tfile, in ttm_ref_object_add() argument
325 struct drm_open_hash *ht = &tfile->ref_hash[ref_type]; in ttm_ref_object_add()
328 struct ttm_mem_global *mem_glob = tfile->tdev->mem_glob; in ttm_ref_object_add()
335 if (base->tfile != tfile && !base->shareable) in ttm_ref_object_add()
369 ref->tfile = tfile; in ttm_ref_object_add()
373 spin_lock(&tfile->lock); in ttm_ref_object_add()
377 list_add_tail(&ref->head, &tfile->ref_list); in ttm_ref_object_add()
379 spin_unlock(&tfile->lock); in ttm_ref_object_add()
385 spin_unlock(&tfile->lock); in ttm_ref_object_add()
401 struct ttm_object_file *tfile = ref->tfile; in ttm_ref_object_release() local
403 struct ttm_mem_global *mem_glob = tfile->tdev->mem_glob; in ttm_ref_object_release()
405 ht = &tfile->ref_hash[ref->ref_type]; in ttm_ref_object_release()
408 spin_unlock(&tfile->lock); in ttm_ref_object_release()
416 spin_lock(&tfile->lock); in ttm_ref_object_release()
419 int ttm_ref_object_base_unref(struct ttm_object_file *tfile, in ttm_ref_object_base_unref() argument
422 struct drm_open_hash *ht = &tfile->ref_hash[ref_type]; in ttm_ref_object_base_unref()
427 spin_lock(&tfile->lock); in ttm_ref_object_base_unref()
430 spin_unlock(&tfile->lock); in ttm_ref_object_base_unref()
435 spin_unlock(&tfile->lock); in ttm_ref_object_base_unref()
445 struct ttm_object_file *tfile = *p_tfile; in ttm_object_file_release() local
448 spin_lock(&tfile->lock); in ttm_object_file_release()
455 while (!list_empty(&tfile->ref_list)) { in ttm_object_file_release()
456 list = tfile->ref_list.next; in ttm_object_file_release()
461 spin_unlock(&tfile->lock); in ttm_object_file_release()
463 drm_ht_remove(&tfile->ref_hash[i]); in ttm_object_file_release()
465 ttm_object_file_unref(&tfile); in ttm_object_file_release()
472 struct ttm_object_file *tfile = kmalloc(sizeof(*tfile), GFP_KERNEL); in ttm_object_file_init() local
477 if (unlikely(tfile == NULL)) in ttm_object_file_init()
480 spin_lock_init(&tfile->lock); in ttm_object_file_init()
481 tfile->tdev = tdev; in ttm_object_file_init()
482 kref_init(&tfile->refcount); in ttm_object_file_init()
483 INIT_LIST_HEAD(&tfile->ref_list); in ttm_object_file_init()
486 ret = drm_ht_create(&tfile->ref_hash[i], hash_order); in ttm_object_file_init()
493 return tfile; in ttm_object_file_init()
496 drm_ht_remove(&tfile->ref_hash[i]); in ttm_object_file_init()
498 kfree(tfile); in ttm_object_file_init()
603 struct ttm_object_device *tdev = base->tfile->tdev; in ttm_prime_dmabuf_release()
626 int ttm_prime_fd_to_handle(struct ttm_object_file *tfile, in ttm_prime_fd_to_handle() argument
629 struct ttm_object_device *tdev = tfile->tdev; in ttm_prime_fd_to_handle()
645 ret = ttm_ref_object_add(tfile, base, TTM_REF_USAGE, NULL, false); in ttm_prime_fd_to_handle()
662 int ttm_prime_handle_to_fd(struct ttm_object_file *tfile, in ttm_prime_handle_to_fd() argument
666 struct ttm_object_device *tdev = tfile->tdev; in ttm_prime_handle_to_fd()
672 base = ttm_base_object_lookup(tfile, handle); in ttm_prime_handle_to_fd()
758 int ttm_prime_object_init(struct ttm_object_file *tfile, size_t size, in ttm_prime_object_init() argument
770 return ttm_base_object_init(tfile, &prime->base, shareable, in ttm_prime_object_init()