Lines Matching refs:ttm

46 	struct ttm_tt ttm;  member
119 struct ttm_tt *ttm) in i915_ttm_cache_level() argument
122 ttm->caching == ttm_cached) ? I915_CACHE_LLC : in i915_ttm_cache_level()
199 ret = ttm_tt_init(&i915_tt->ttm, bo, page_flags, in i915_ttm_tt_create()
208 return &i915_tt->ttm; in i915_ttm_tt_create()
211 static void i915_ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm) in i915_ttm_tt_unpopulate() argument
213 struct i915_ttm_tt *i915_tt = container_of(ttm, typeof(*i915_tt), ttm); in i915_ttm_tt_unpopulate()
222 ttm_pool_free(&bdev->pool, ttm); in i915_ttm_tt_unpopulate()
225 static void i915_ttm_tt_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) in i915_ttm_tt_destroy() argument
227 struct i915_ttm_tt *i915_tt = container_of(ttm, typeof(*i915_tt), ttm); in i915_ttm_tt_destroy()
229 ttm_tt_fini(ttm); in i915_ttm_tt_destroy()
269 if (!obj->ttm.cached_io_st) in i915_ttm_free_cached_io_st()
273 radix_tree_for_each_slot(slot, &obj->ttm.get_io_page.radix, &iter, 0) in i915_ttm_free_cached_io_st()
274 radix_tree_delete(&obj->ttm.get_io_page.radix, iter.index); in i915_ttm_free_cached_io_st()
277 sg_free_table(obj->ttm.cached_io_st); in i915_ttm_free_cached_io_st()
278 kfree(obj->ttm.cached_io_st); in i915_ttm_free_cached_io_st()
279 obj->ttm.cached_io_st = NULL; in i915_ttm_free_cached_io_st()
287 if (cpu_maps_iomem(bo->resource) || bo->ttm->caching != ttm_cached) { in i915_ttm_adjust_domains_after_move()
327 bo->ttm); in i915_ttm_adjust_gem_after_move()
361 GEM_WARN_ON(obj->ttm.cached_io_st); in i915_ttm_swap_notify()
392 static struct sg_table *i915_ttm_tt_get_st(struct ttm_tt *ttm) in i915_ttm_tt_get_st() argument
394 struct i915_ttm_tt *i915_tt = container_of(ttm, typeof(*i915_tt), ttm); in i915_ttm_tt_get_st()
406 ttm->pages, ttm->num_pages, in i915_ttm_tt_get_st()
407 0, (unsigned long)ttm->num_pages << PAGE_SHIFT, in i915_ttm_tt_get_st()
432 return i915_ttm_tt_get_st(bo->ttm); in i915_ttm_resource_get_st()
455 struct ttm_tt *src_ttm = bo->ttm; in i915_ttm_accel_move()
480 obj->ttm.cached_io_st; in i915_ttm_accel_move()
529 ttm_kmap_iter_tt_init(&_src_iter.tt, bo->ttm) : in __i915_ttm_move()
531 obj->ttm.cached_io_st, in __i915_ttm_move()
546 struct ttm_tt *ttm = bo->ttm; in i915_ttm_move() local
567 if (ttm && (dst_man->use_tt || (ttm->page_flags & TTM_TT_FLAG_SWAPPED))) { in i915_ttm_move()
568 ret = ttm_tt_populate(bo->bdev, ttm, ctx); in i915_ttm_move()
577 clear = !cpu_maps_iomem(bo->resource) && (!ttm || !ttm_tt_is_populated(ttm)); in i915_ttm_move()
578 if (!(clear && ttm && !(ttm->page_flags & TTM_TT_FLAG_ZERO_ALLOC))) in i915_ttm_move()
579 __i915_ttm_move(bo, clear, dst_mem, bo->ttm, dst_st, true); in i915_ttm_move()
586 obj->ttm.cached_io_st = dst_st; in i915_ttm_move()
587 obj->ttm.get_io_page.sg_pos = dst_st->sgl; in i915_ttm_move()
588 obj->ttm.get_io_page.sg_idx = 0; in i915_ttm_move()
614 GEM_WARN_ON(bo->ttm); in i915_ttm_io_mem_pfn()
616 sg = __i915_gem_object_get_sg(obj, &obj->ttm.get_io_page, page_offset, &ofs, true); in i915_ttm_io_mem_pfn()
680 if (bo->ttm && !ttm_tt_is_populated(bo->ttm)) { in __i915_ttm_get_pages()
681 ret = ttm_tt_populate(bo->bdev, bo->ttm, &ctx); in __i915_ttm_get_pages()
691 st = bo->ttm ? i915_ttm_tt_get_st(bo->ttm) : obj->ttm.cached_io_st; in __i915_ttm_get_pages()
818 GEM_BUG_ON(!obj->ttm.created); in i915_ttm_delayed_free()
901 mutex_destroy(&obj->ttm.get_io_page.lock); in i915_ttm_bo_destroy()
903 if (obj->ttm.created) { in i915_ttm_bo_destroy()
947 INIT_RADIX_TREE(&obj->ttm.get_io_page.radix, GFP_KERNEL | __GFP_NOWARN); in __i915_gem_ttm_object_init()
948 mutex_init(&obj->ttm.get_io_page.lock); in __i915_gem_ttm_object_init()
971 obj->ttm.created = true; in __i915_gem_ttm_object_init()
1042 dst->ttm.cached_io_st : i915_ttm_tt_get_st(dst_bo->ttm); in i915_gem_obj_copy_ttm()
1044 __i915_ttm_move(src_bo, false, dst_bo->resource, dst_bo->ttm, in i915_gem_obj_copy_ttm()