Lines Matching refs:tfile

127 	struct ttm_object_file *tfile;  member
133 ttm_object_file_ref(struct ttm_object_file *tfile) in ttm_object_file_ref() argument
135 kref_get(&tfile->refcount); in ttm_object_file_ref()
136 return tfile; in ttm_object_file_ref()
141 struct ttm_object_file *tfile = in ttm_object_file_destroy() local
144 kfree(tfile); in ttm_object_file_destroy()
150 struct ttm_object_file *tfile = *p_tfile; in ttm_object_file_unref() local
153 kref_put(&tfile->refcount, ttm_object_file_destroy); in ttm_object_file_unref()
157 int ttm_base_object_init(struct ttm_object_file *tfile, in ttm_base_object_init() argument
165 struct ttm_object_device *tdev = tfile->tdev; in ttm_base_object_init()
169 base->tfile = ttm_object_file_ref(tfile); in ttm_base_object_init()
182 ret = ttm_ref_object_add(tfile, base, TTM_REF_USAGE, NULL); in ttm_base_object_init()
202 struct ttm_object_device *tdev = base->tfile->tdev; in ttm_release_base()
214 ttm_object_file_unref(&base->tfile); in ttm_release_base()
229 struct ttm_base_object *ttm_base_object_lookup(struct ttm_object_file *tfile, in ttm_base_object_lookup() argument
234 struct drm_open_hash *ht = &tfile->ref_hash[TTM_REF_USAGE]; in ttm_base_object_lookup()
283 bool ttm_ref_object_exists(struct ttm_object_file *tfile, in ttm_ref_object_exists() argument
286 struct drm_open_hash *ht = &tfile->ref_hash[TTM_REF_USAGE]; in ttm_ref_object_exists()
319 int ttm_ref_object_add(struct ttm_object_file *tfile, in ttm_ref_object_add() argument
323 struct drm_open_hash *ht = &tfile->ref_hash[ref_type]; in ttm_ref_object_add()
326 struct ttm_mem_global *mem_glob = tfile->tdev->mem_glob; in ttm_ref_object_add()
329 if (base->tfile != tfile && !base->shareable) in ttm_ref_object_add()
360 ref->tfile = tfile; in ttm_ref_object_add()
364 spin_lock(&tfile->lock); in ttm_ref_object_add()
368 list_add_tail(&ref->head, &tfile->ref_list); in ttm_ref_object_add()
370 spin_unlock(&tfile->lock); in ttm_ref_object_add()
376 spin_unlock(&tfile->lock); in ttm_ref_object_add()
392 struct ttm_object_file *tfile = ref->tfile; in ttm_ref_object_release() local
394 struct ttm_mem_global *mem_glob = tfile->tdev->mem_glob; in ttm_ref_object_release()
396 ht = &tfile->ref_hash[ref->ref_type]; in ttm_ref_object_release()
399 spin_unlock(&tfile->lock); in ttm_ref_object_release()
407 spin_lock(&tfile->lock); in ttm_ref_object_release()
410 int ttm_ref_object_base_unref(struct ttm_object_file *tfile, in ttm_ref_object_base_unref() argument
413 struct drm_open_hash *ht = &tfile->ref_hash[ref_type]; in ttm_ref_object_base_unref()
418 spin_lock(&tfile->lock); in ttm_ref_object_base_unref()
421 spin_unlock(&tfile->lock); in ttm_ref_object_base_unref()
426 spin_unlock(&tfile->lock); in ttm_ref_object_base_unref()
436 struct ttm_object_file *tfile = *p_tfile; in ttm_object_file_release() local
439 spin_lock(&tfile->lock); in ttm_object_file_release()
446 while (!list_empty(&tfile->ref_list)) { in ttm_object_file_release()
447 list = tfile->ref_list.next; in ttm_object_file_release()
453 drm_ht_remove(&tfile->ref_hash[i]); in ttm_object_file_release()
455 spin_unlock(&tfile->lock); in ttm_object_file_release()
456 ttm_object_file_unref(&tfile); in ttm_object_file_release()
463 struct ttm_object_file *tfile = kmalloc(sizeof(*tfile), GFP_KERNEL); in ttm_object_file_init() local
468 if (unlikely(tfile == NULL)) in ttm_object_file_init()
471 spin_lock_init(&tfile->lock); in ttm_object_file_init()
472 tfile->tdev = tdev; in ttm_object_file_init()
473 kref_init(&tfile->refcount); in ttm_object_file_init()
474 INIT_LIST_HEAD(&tfile->ref_list); in ttm_object_file_init()
477 ret = drm_ht_create(&tfile->ref_hash[i], hash_order); in ttm_object_file_init()
484 return tfile; in ttm_object_file_init()
487 drm_ht_remove(&tfile->ref_hash[i]); in ttm_object_file_init()
489 kfree(tfile); in ttm_object_file_init()
596 struct ttm_object_device *tdev = base->tfile->tdev; in ttm_prime_dmabuf_release()
619 int ttm_prime_fd_to_handle(struct ttm_object_file *tfile, in ttm_prime_fd_to_handle() argument
622 struct ttm_object_device *tdev = tfile->tdev; in ttm_prime_fd_to_handle()
638 ret = ttm_ref_object_add(tfile, base, TTM_REF_USAGE, NULL); in ttm_prime_fd_to_handle()
655 int ttm_prime_handle_to_fd(struct ttm_object_file *tfile, in ttm_prime_handle_to_fd() argument
659 struct ttm_object_device *tdev = tfile->tdev; in ttm_prime_handle_to_fd()
665 base = ttm_base_object_lookup(tfile, handle); in ttm_prime_handle_to_fd()
748 int ttm_prime_object_init(struct ttm_object_file *tfile, size_t size, in ttm_prime_object_init() argument
760 return ttm_base_object_init(tfile, &prime->base, shareable, in ttm_prime_object_init()