/kernel/linux/linux-6.6/drivers/gpu/drm/ttm/ |
H A D | ttm_tt.c | 39 #include <drm/ttm/ttm_bo.h> 40 #include <drm/ttm/ttm_tt.h> 58 * Allocates a ttm structure for the given BO. 67 if (bo->ttm) in ttm_tt_create() 85 bo->ttm = bdev->funcs->ttm_tt_create(bo, page_flags); in ttm_tt_create() 86 if (unlikely(bo->ttm == NULL)) in ttm_tt_create() 89 WARN_ON(bo->ttm->page_flags & TTM_TT_FLAG_EXTERNAL_MAPPABLE && in ttm_tt_create() 90 !(bo->ttm->page_flags & TTM_TT_FLAG_EXTERNAL)); in ttm_tt_create() 96 * Allocates storage for pointers to the pages that back the ttm. 98 static int ttm_tt_alloc_page_directory(struct ttm_tt *ttm) in ttm_tt_alloc_page_directory() argument 107 ttm_dma_tt_alloc_page_directory(struct ttm_tt *ttm) ttm_dma_tt_alloc_page_directory() argument 118 ttm_sg_tt_alloc_page_directory(struct ttm_tt *ttm) ttm_sg_tt_alloc_page_directory() argument 128 ttm_tt_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) ttm_tt_destroy() argument 133 ttm_tt_init_fields(struct ttm_tt *ttm, struct ttm_buffer_object *bo, uint32_t page_flags, enum ttm_caching caching, unsigned long extra_pages) ttm_tt_init_fields() argument 147 ttm_tt_init(struct ttm_tt *ttm, struct ttm_buffer_object *bo, uint32_t page_flags, enum ttm_caching caching, unsigned long extra_pages) ttm_tt_init() argument 161 ttm_tt_fini(struct ttm_tt *ttm) ttm_tt_fini() argument 178 ttm_sg_tt_init(struct ttm_tt *ttm, struct ttm_buffer_object *bo, uint32_t page_flags, enum ttm_caching caching) ttm_sg_tt_init() argument 197 ttm_tt_swapin(struct ttm_tt *ttm) ttm_tt_swapin() argument 249 ttm_tt_swapout(struct ttm_device *bdev, struct ttm_tt *ttm, gfp_t gfp_flags) ttm_tt_swapout() argument 296 ttm_tt_populate(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) ttm_tt_populate() argument 354 ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm) ttm_tt_unpopulate() argument [all...] |
H A D | ttm_agp_backend.c | 35 #include <drm/ttm/ttm_device.h> 36 #include <drm/ttm/ttm_tt.h> 37 #include <drm/ttm/ttm_resource.h> 45 struct ttm_tt ttm; member 50 int ttm_agp_bind(struct ttm_tt *ttm, struct ttm_resource *bo_mem) in ttm_agp_bind() argument 52 struct ttm_agp_backend *agp_be = container_of(ttm, struct ttm_agp_backend, ttm); in ttm_agp_bind() 55 int ret, cached = ttm->caching == ttm_cached; in ttm_agp_bind() 61 mem = agp_allocate_memory(agp_be->bridge, ttm->num_pages, AGP_USER_MEMORY); in ttm_agp_bind() 66 for (i = 0; i < ttm in ttm_agp_bind() 87 ttm_agp_unbind(struct ttm_tt *ttm) ttm_agp_unbind() argument 102 ttm_agp_is_bound(struct ttm_tt *ttm) ttm_agp_is_bound() argument 113 ttm_agp_destroy(struct ttm_tt *ttm) ttm_agp_destroy() argument [all...] |
H A D | ttm_bo_util.c | 34 #include <drm/ttm/ttm_bo.h> 35 #include <drm/ttm/ttm_placement.h> 36 #include <drm/ttm/ttm_tt.h> 75 * ttm_move_memcpy - Helper to perform a memcpy ttm move operation. 149 struct ttm_tt *ttm = bo->ttm; in ttm_bo_move_memcpy() local 164 if (ttm && ((ttm->page_flags & TTM_TT_FLAG_SWAPPED) || in ttm_bo_move_memcpy() 166 ret = ttm_tt_populate(bdev, ttm, ctx); in ttm_bo_move_memcpy() 173 dst_iter = ttm_kmap_iter_tt_init(&_dst_iter.tt, bo->ttm); in ttm_bo_move_memcpy() 339 struct ttm_tt *ttm = bo->ttm; ttm_bo_kmap_ttm() local 497 struct ttm_tt *ttm = bo->ttm; ttm_bo_vmap() local 708 struct ttm_tt *ttm; ttm_bo_pipeline_gutting() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/ttm/ |
H A D | ttm_tt.c | 39 #include <drm/ttm/ttm_bo_driver.h> 40 #include <drm/ttm/ttm_page_alloc.h> 41 #include <drm/ttm/ttm_set_memory.h> 44 * Allocates a ttm structure for the given BO. 53 if (bo->ttm) in ttm_tt_create() 77 bo->ttm = bdev->driver->ttm_tt_create(bo, page_flags); in ttm_tt_create() 78 if (unlikely(bo->ttm == NULL)) in ttm_tt_create() 85 * Allocates storage for pointers to the pages that back the ttm. 87 static int ttm_tt_alloc_page_directory(struct ttm_tt *ttm) in ttm_tt_alloc_page_directory() argument 89 ttm in ttm_tt_alloc_page_directory() 96 ttm_dma_tt_alloc_page_directory(struct ttm_dma_tt *ttm) ttm_dma_tt_alloc_page_directory() argument 108 ttm_sg_tt_alloc_page_directory(struct ttm_dma_tt *ttm) ttm_sg_tt_alloc_page_directory() argument 149 ttm_tt_set_caching(struct ttm_tt *ttm, enum ttm_caching_state c_state) ttm_tt_set_caching() argument 195 ttm_tt_set_placement_caching(struct ttm_tt *ttm, uint32_t placement) ttm_tt_set_placement_caching() argument 210 ttm_tt_destroy_common(struct ttm_bo_device *bdev, struct ttm_tt *ttm) ttm_tt_destroy_common() argument 222 ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm) ttm_tt_destroy() argument 227 ttm_tt_init_fields(struct ttm_tt *ttm, struct ttm_buffer_object *bo, uint32_t page_flags) ttm_tt_init_fields() argument 239 ttm_tt_init(struct ttm_tt *ttm, struct ttm_buffer_object *bo, uint32_t page_flags) ttm_tt_init() argument 252 ttm_tt_fini(struct ttm_tt *ttm) ttm_tt_fini() argument 262 struct ttm_tt *ttm = &ttm_dma->ttm; ttm_dma_tt_init() local 278 struct ttm_tt *ttm = &ttm_dma->ttm; ttm_sg_tt_init() local 298 struct ttm_tt *ttm = &ttm_dma->ttm; ttm_dma_tt_fini() local 309 ttm_tt_swapin(struct ttm_tt *ttm) ttm_tt_swapin() argument 351 ttm_tt_swapout(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct file *persistent_swap_storage) ttm_tt_swapout() argument 411 ttm_tt_add_mapping(struct ttm_bo_device *bdev, struct ttm_tt *ttm) ttm_tt_add_mapping() argument 422 ttm_tt_populate(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) ttm_tt_populate() argument 443 ttm_tt_clear_mapping(struct ttm_tt *ttm) ttm_tt_clear_mapping() argument 457 ttm_tt_unpopulate(struct ttm_bo_device *bdev, struct ttm_tt *ttm) ttm_tt_unpopulate() argument [all...] |
H A D | ttm_agp_backend.c | 35 #include <drm/ttm/ttm_module.h> 36 #include <drm/ttm/ttm_bo_driver.h> 37 #include <drm/ttm/ttm_page_alloc.h> 38 #include <drm/ttm/ttm_placement.h> 46 struct ttm_tt ttm; member 51 int ttm_agp_bind(struct ttm_tt *ttm, struct ttm_resource *bo_mem) in ttm_agp_bind() argument 53 struct ttm_agp_backend *agp_be = container_of(ttm, struct ttm_agp_backend, ttm); in ttm_agp_bind() 63 mem = agp_allocate_memory(agp_be->bridge, ttm->num_pages, AGP_USER_MEMORY); in ttm_agp_bind() 68 for (i = 0; i < ttm in ttm_agp_bind() 89 ttm_agp_unbind(struct ttm_tt *ttm) ttm_agp_unbind() argument 104 ttm_agp_is_bound(struct ttm_tt *ttm) ttm_agp_is_bound() argument 115 ttm_agp_destroy(struct ttm_tt *ttm) ttm_agp_destroy() argument [all...] |
H A D | ttm_page_alloc.c | 48 #include <drm/ttm/ttm_bo_driver.h> 49 #include <drm/ttm/ttm_page_alloc.h> 50 #include <drm/ttm/ttm_set_memory.h> 220 * Select the right pool or requested caching state and ttm flags. */ 1029 ttm_pool_unpopulate_helper(struct ttm_tt *ttm, unsigned mem_count_update) in ttm_pool_unpopulate_helper() argument 1038 if (!ttm->pages[i]) in ttm_pool_unpopulate_helper() 1041 ttm_mem_global_free_page(mem_glob, ttm->pages[i], PAGE_SIZE); in ttm_pool_unpopulate_helper() 1045 ttm_put_pages(ttm->pages, ttm->num_pages, ttm in ttm_pool_unpopulate_helper() 1050 ttm_pool_populate(struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) ttm_pool_populate() argument 1091 ttm_pool_unpopulate(struct ttm_tt *ttm) ttm_pool_unpopulate() argument [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/radeon/ |
H A D | radeon_ttm.c | 44 #include <drm/ttm/ttm_bo.h> 45 #include <drm/ttm/ttm_placement.h> 46 #include <drm/ttm/ttm_range_manager.h> 47 #include <drm/ttm/ttm_tt.h> 55 static int radeon_ttm_tt_bind(struct ttm_device *bdev, struct ttm_tt *ttm, 57 static void radeon_ttm_tt_unbind(struct ttm_device *bdev, struct ttm_tt *ttm); 204 r = radeon_ttm_tt_bind(bo->bdev, bo->ttm, new_mem); in radeon_bo_move() 216 bo->ttm == NULL)) { in radeon_bo_move() 228 radeon_ttm_tt_unbind(bo->bdev, bo->ttm); in radeon_bo_move() 321 struct ttm_tt ttm; member 331 radeon_ttm_tt_pin_userptr(struct ttm_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_pin_userptr() argument 392 radeon_ttm_tt_unpin_userptr(struct ttm_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_unpin_userptr() argument 421 radeon_ttm_backend_is_bound(struct ttm_tt *ttm) radeon_ttm_backend_is_bound() argument 428 radeon_ttm_backend_bind(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) radeon_ttm_backend_bind() argument 464 radeon_ttm_backend_unbind(struct ttm_device *bdev, struct ttm_tt *ttm) radeon_ttm_backend_unbind() argument 480 radeon_ttm_backend_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) radeon_ttm_backend_destroy() argument 522 radeon_ttm_tt_to_gtt(struct radeon_device *rdev, struct ttm_tt *ttm) radeon_ttm_tt_to_gtt() argument 535 radeon_ttm_tt_populate(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) radeon_ttm_tt_populate() argument 561 radeon_ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_unpopulate() argument 581 radeon_ttm_tt_set_userptr(struct radeon_device *rdev, struct ttm_tt *ttm, uint64_t addr, uint32_t flags) radeon_ttm_tt_set_userptr() argument 596 radeon_ttm_tt_is_bound(struct ttm_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_is_bound() argument 607 radeon_ttm_tt_bind(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) radeon_ttm_tt_bind() argument 625 radeon_ttm_tt_unbind(struct ttm_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_unbind() argument 639 radeon_ttm_tt_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_destroy() argument 653 radeon_ttm_tt_has_userptr(struct radeon_device *rdev, struct ttm_tt *ttm) radeon_ttm_tt_has_userptr() argument 664 radeon_ttm_tt_is_readonly(struct radeon_device *rdev, struct ttm_tt *ttm) radeon_ttm_tt_is_readonly() argument [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/radeon/ |
H A D | radeon_ttm.c | 47 #include <drm/ttm/ttm_bo_api.h> 48 #include <drm/ttm/ttm_bo_driver.h> 49 #include <drm/ttm/ttm_module.h> 50 #include <drm/ttm/ttm_page_alloc.h> 51 #include <drm/ttm/ttm_placement.h> 60 struct ttm_tt *ttm, 147 if (radeon_ttm_tt_has_userptr(rdev, bo->ttm)) in radeon_verify_access() 235 r = ttm_tt_set_placement_caching(bo->ttm, tmp_mem.placement); in radeon_move_vram_ram() 240 r = ttm_tt_populate(bo->bdev, bo->ttm, &ctx); in radeon_move_vram_ram() 245 r = radeon_ttm_tt_bind(bo->bdev, bo->ttm, in radeon_move_vram_ram() 421 struct ttm_dma_tt ttm; global() member 431 radeon_ttm_tt_pin_userptr(struct ttm_bo_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_pin_userptr() argument 492 radeon_ttm_tt_unpin_userptr(struct ttm_bo_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_unpin_userptr() argument 521 radeon_ttm_backend_is_bound(struct ttm_tt *ttm) radeon_ttm_backend_is_bound() argument 528 radeon_ttm_backend_bind(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) radeon_ttm_backend_bind() argument 564 radeon_ttm_backend_unbind(struct ttm_bo_device *bdev, struct ttm_tt *ttm) radeon_ttm_backend_unbind() argument 580 radeon_ttm_backend_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm) radeon_ttm_backend_destroy() argument 616 radeon_ttm_tt_to_gtt(struct radeon_device *rdev, struct ttm_tt *ttm) radeon_ttm_tt_to_gtt() argument 629 radeon_ttm_tt_populate(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) radeon_ttm_tt_populate() argument 669 radeon_ttm_tt_unpopulate(struct ttm_bo_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_unpopulate() argument 701 radeon_ttm_tt_set_userptr(struct radeon_device *rdev, struct ttm_tt *ttm, uint64_t addr, uint32_t flags) radeon_ttm_tt_set_userptr() argument 716 radeon_ttm_tt_is_bound(struct ttm_bo_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_is_bound() argument 727 radeon_ttm_tt_bind(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) radeon_ttm_tt_bind() argument 745 radeon_ttm_tt_unbind(struct ttm_bo_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_unbind() argument 759 radeon_ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm) radeon_ttm_tt_destroy() argument 775 radeon_ttm_tt_has_userptr(struct radeon_device *rdev, struct ttm_tt *ttm) radeon_ttm_tt_has_userptr() argument 786 radeon_ttm_tt_is_readonly(struct radeon_device *rdev, struct ttm_tt *ttm) radeon_ttm_tt_is_readonly() argument [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/ |
H A D | nouveau_sgdma.c | 13 struct ttm_dma_tt ttm; member 18 nouveau_sgdma_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm) in nouveau_sgdma_destroy() argument 20 struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)ttm; in nouveau_sgdma_destroy() 22 if (ttm) { in nouveau_sgdma_destroy() 23 nouveau_sgdma_unbind(bdev, ttm); in nouveau_sgdma_destroy() 24 ttm_tt_destroy_common(bdev, ttm); in nouveau_sgdma_destroy() 25 ttm_dma_tt_fini(&nvbe->ttm); in nouveau_sgdma_destroy() 31 nouveau_sgdma_bind(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_resource *reg) in nouveau_sgdma_bind() argument 33 struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)ttm; in nouveau_sgdma_bind() 41 ret = nouveau_mem_host(reg, &nvbe->ttm); in nouveau_sgdma_bind() 58 nouveau_sgdma_unbind(struct ttm_bo_device *bdev, struct ttm_tt *ttm) nouveau_sgdma_unbind() argument [all...] |
H A D | nouveau_bo.c | 47 static int nouveau_ttm_tt_bind(struct ttm_bo_device *bdev, struct ttm_tt *ttm, 218 nvbo->bo.bdev = &drm->ttm.bdev; in nouveau_bo_alloc() 318 /* ttm will call nouveau_bo_del_ttm if it fails.. */ in nouveau_bo_init() 361 mmu->type[drm->ttm.type_vram].type & NVIF_MEM_UNCACHED) in set_placement_list() 592 struct ttm_dma_tt *ttm_dma = (struct ttm_dma_tt *)nvbo->bo.ttm; in nouveau_bo_sync_for_device() 602 for (i = 0; i < ttm_dma->ttm.num_pages; i++) in nouveau_bo_sync_for_device() 612 struct ttm_dma_tt *ttm_dma = (struct ttm_dma_tt *)nvbo->bo.ttm; in nouveau_bo_sync_for_cpu() 622 for (i = 0; i < ttm_dma->ttm.num_pages; i++) in nouveau_bo_sync_for_cpu() 632 mutex_lock(&drm->ttm.io_reserve_mutex); in nouveau_bo_add_io_reserve_lru() 633 list_move_tail(&nvbo->io_reserve_lru, &drm->ttm in nouveau_bo_add_io_reserve_lru() 720 nouveau_ttm_tt_bind(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_resource *reg) nouveau_ttm_tt_bind() argument 736 nouveau_ttm_tt_unbind(struct ttm_bo_device *bdev, struct ttm_tt *ttm) nouveau_ttm_tt_unbind() argument 1313 nouveau_ttm_tt_populate(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) nouveau_ttm_tt_populate() argument 1350 nouveau_ttm_tt_unpopulate(struct ttm_bo_device *bdev, struct ttm_tt *ttm) nouveau_ttm_tt_unpopulate() argument 1382 nouveau_ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm) nouveau_ttm_tt_destroy() argument [all...] |
H A D | nouveau_ttm.c | 165 ret = ttm_bo_mmap(filp, vma, &drm->ttm.bdev); in nouveau_ttm_mmap() 184 drm->ttm.type_host[!!kind] = typei; in nouveau_ttm_init_host() 190 drm->ttm.type_ncoh[!!kind] = typei; in nouveau_ttm_init_host() 207 ttm_set_driver_manager(&drm->ttm.bdev, TTM_PL_VRAM, man); in nouveau_ttm_init_vram() 211 return ttm_range_man_init(&drm->ttm.bdev, TTM_PL_VRAM, false, in nouveau_ttm_init_vram() 219 struct ttm_resource_manager *man = ttm_manager_type(&drm->ttm.bdev, TTM_PL_VRAM); in nouveau_ttm_fini_vram() 223 ttm_resource_manager_force_list_clean(&drm->ttm.bdev, man); in nouveau_ttm_fini_vram() 225 ttm_set_driver_manager(&drm->ttm.bdev, TTM_PL_VRAM, NULL); in nouveau_ttm_fini_vram() 228 ttm_range_man_fini(&drm->ttm.bdev, TTM_PL_VRAM); in nouveau_ttm_fini_vram() 243 return ttm_range_man_init(&drm->ttm in nouveau_ttm_init_gtt() [all...] |
/kernel/linux/linux-6.6/include/drm/ttm/ |
H A D | ttm_tt.h | 32 #include <drm/ttm/ttm_caching.h> 33 #include <drm/ttm/ttm_kmap_iter.h> 139 * @ttm: The struct ttm_tt. 140 * @bo: The buffer object we create the ttm for. 150 int ttm_tt_init(struct ttm_tt *ttm, struct ttm_buffer_object *bo, 159 * @ttm: the ttm_tt structure. 163 void ttm_tt_fini(struct ttm_tt *ttm); 169 * @ttm: The struct ttm_tt. 173 void ttm_tt_destroy(struct ttm_device *bdev, struct ttm_tt *ttm); 178 * @ttm 216 ttm_tt_mark_for_clear(struct ttm_tt *ttm) ttm_tt_mark_for_clear() argument [all...] |
/kernel/linux/linux-5.10/include/drm/ttm/ |
H A D | ttm_tt.h | 59 * @be: Pointer to the ttm backend. 95 * @ttm: Base ttm_tt struct. 104 struct ttm_tt ttm; member 123 * @ttm: The struct ttm_tt. 124 * @bo: The buffer object we create the ttm for. 132 int ttm_tt_init(struct ttm_tt *ttm, struct ttm_buffer_object *bo, 142 * @ttm: the ttm_tt structure. 146 void ttm_tt_fini(struct ttm_tt *ttm); 152 * @ttm: The struct ttm_tt. 156 void ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm); [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_ttm.c | 46 #include <drm/ttm/ttm_bo_api.h> 47 #include <drm/ttm/ttm_bo_driver.h> 48 #include <drm/ttm/ttm_placement.h> 49 #include <drm/ttm/ttm_module.h> 50 #include <drm/ttm/ttm_page_alloc.h> 67 struct ttm_tt *ttm, 175 if (amdgpu_ttm_tt_get_usermm(bo->ttm)) in amdgpu_verify_access() 288 flags = amdgpu_ttm_tt_pte_flags(adev, bo->ttm, mem); in amdgpu_ttm_map_buffer() 298 dma = container_of(bo->ttm, struct ttm_dma_tt, ttm); in amdgpu_ttm_map_buffer() 814 struct ttm_dma_tt ttm; global() member 836 struct ttm_tt *ttm = bo->tbo.ttm; amdgpu_ttm_tt_get_user_pages() local 938 amdgpu_ttm_tt_get_user_pages_done(struct ttm_tt *ttm) amdgpu_ttm_tt_get_user_pages_done() argument 975 amdgpu_ttm_tt_set_user_pages(struct ttm_tt *ttm, struct page **pages) amdgpu_ttm_tt_set_user_pages() argument 988 amdgpu_ttm_tt_pin_userptr(struct ttm_bo_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_tt_pin_userptr() argument 1026 amdgpu_ttm_tt_unpin_userptr(struct ttm_bo_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_tt_unpin_userptr() argument 1064 struct ttm_tt *ttm = tbo->ttm; amdgpu_ttm_gart_bind() local 1110 amdgpu_ttm_backend_bind(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) amdgpu_ttm_backend_bind() argument 1250 amdgpu_ttm_backend_unbind(struct ttm_bo_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_backend_unbind() argument 1275 amdgpu_ttm_backend_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_backend_destroy() argument 1321 amdgpu_ttm_tt_populate(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) amdgpu_ttm_tt_populate() argument 1376 amdgpu_ttm_tt_unpopulate(struct ttm_bo_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_tt_unpopulate() argument 1452 amdgpu_ttm_tt_get_usermm(struct ttm_tt *ttm) amdgpu_ttm_tt_get_usermm() argument 1470 amdgpu_ttm_tt_affect_userptr(struct ttm_tt *ttm, unsigned long start, unsigned long end) amdgpu_ttm_tt_affect_userptr() argument 1492 amdgpu_ttm_tt_is_userptr(struct ttm_tt *ttm) amdgpu_ttm_tt_is_userptr() argument 1505 amdgpu_ttm_tt_is_readonly(struct ttm_tt *ttm) amdgpu_ttm_tt_is_readonly() argument 1523 amdgpu_ttm_tt_pde_flags(struct ttm_tt *ttm, struct ttm_resource *mem) amdgpu_ttm_tt_pde_flags() argument 1548 amdgpu_ttm_tt_pte_flags(struct amdgpu_device *adev, struct ttm_tt *ttm, struct ttm_resource *mem) amdgpu_ttm_tt_pte_flags() argument [all...] |
H A D | amdgpu_ttm.h | 152 bool amdgpu_ttm_tt_get_user_pages_done(struct ttm_tt *ttm); 159 static inline bool amdgpu_ttm_tt_get_user_pages_done(struct ttm_tt *ttm) in amdgpu_ttm_tt_get_user_pages_done() argument 165 void amdgpu_ttm_tt_set_user_pages(struct ttm_tt *ttm, struct page **pages); 168 bool amdgpu_ttm_tt_has_userptr(struct ttm_tt *ttm); 169 struct mm_struct *amdgpu_ttm_tt_get_usermm(struct ttm_tt *ttm); 170 bool amdgpu_ttm_tt_affect_userptr(struct ttm_tt *ttm, unsigned long start, 172 bool amdgpu_ttm_tt_userptr_invalidated(struct ttm_tt *ttm, 174 bool amdgpu_ttm_tt_is_userptr(struct ttm_tt *ttm); 175 bool amdgpu_ttm_tt_is_readonly(struct ttm_tt *ttm); 176 uint64_t amdgpu_ttm_tt_pde_flags(struct ttm_tt *ttm, struc [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/ |
H A D | nouveau_sgdma.c | 4 #include <drm/ttm/ttm_tt.h> 15 struct ttm_tt ttm; member 20 nouveau_sgdma_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) in nouveau_sgdma_destroy() argument 22 struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)ttm; in nouveau_sgdma_destroy() 24 if (ttm) { in nouveau_sgdma_destroy() 25 ttm_tt_fini(&nvbe->ttm); in nouveau_sgdma_destroy() 31 nouveau_sgdma_bind(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_resource *reg) in nouveau_sgdma_bind() argument 33 struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)ttm; in nouveau_sgdma_bind() 41 ret = nouveau_mem_host(reg, &nvbe->ttm); in nouveau_sgdma_bind() 58 nouveau_sgdma_unbind(struct ttm_device *bdev, struct ttm_tt *ttm) in nouveau_sgdma_unbind() argument [all...] |
H A D | nouveau_ttm.c | 28 #include <drm/ttm/ttm_range_manager.h> 170 drm->ttm.type_host[!!kind] = typei; in nouveau_ttm_init_host() 176 drm->ttm.type_ncoh[!!kind] = typei; in nouveau_ttm_init_host() 191 ttm_resource_manager_init(man, &drm->ttm.bdev, in nouveau_ttm_init_vram() 193 ttm_set_driver_manager(&drm->ttm.bdev, TTM_PL_VRAM, man); in nouveau_ttm_init_vram() 197 return ttm_range_man_init(&drm->ttm.bdev, TTM_PL_VRAM, false, in nouveau_ttm_init_vram() 205 struct ttm_resource_manager *man = ttm_manager_type(&drm->ttm.bdev, TTM_PL_VRAM); in nouveau_ttm_fini_vram() 209 ttm_resource_manager_evict_all(&drm->ttm.bdev, man); in nouveau_ttm_fini_vram() 211 ttm_set_driver_manager(&drm->ttm.bdev, TTM_PL_VRAM, NULL); in nouveau_ttm_fini_vram() 214 ttm_range_man_fini(&drm->ttm in nouveau_ttm_fini_vram() [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_ttm.c | 46 #include <drm/ttm/ttm_bo.h> 47 #include <drm/ttm/ttm_placement.h> 48 #include <drm/ttm/ttm_range_manager.h> 49 #include <drm/ttm/ttm_tt.h> 69 struct ttm_tt *ttm, 72 struct ttm_tt *ttm); 249 flags = amdgpu_ttm_tt_pte_flags(adev, bo->ttm, mem); in amdgpu_ttm_map_buffer() 258 dma_addr = &bo->ttm->dma_address[mm_cur->start >> PAGE_SHIFT]; in amdgpu_ttm_map_buffer() 464 r = amdgpu_ttm_backend_bind(bo->bdev, bo->ttm, new_mem); in amdgpu_bo_move() 473 bo->ttm in amdgpu_bo_move() 640 struct ttm_tt ttm; global() member 663 struct ttm_tt *ttm = bo->tbo.ttm; amdgpu_ttm_tt_get_user_pages() local 710 amdgpu_ttm_tt_discard_user_pages(struct ttm_tt *ttm, struct hmm_range *range) amdgpu_ttm_tt_discard_user_pages() argument 725 amdgpu_ttm_tt_get_user_pages_done(struct ttm_tt *ttm, struct hmm_range *range) amdgpu_ttm_tt_get_user_pages_done() argument 749 amdgpu_ttm_tt_set_user_pages(struct ttm_tt *ttm, struct page **pages) amdgpu_ttm_tt_set_user_pages() argument 762 amdgpu_ttm_tt_pin_userptr(struct ttm_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_tt_pin_userptr() argument 799 amdgpu_ttm_tt_unpin_userptr(struct ttm_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_tt_unpin_userptr() argument 824 amdgpu_ttm_gart_bind_gfx9_mqd(struct amdgpu_device *adev, struct ttm_tt *ttm, uint64_t flags) amdgpu_ttm_gart_bind_gfx9_mqd() argument 860 struct ttm_tt *ttm = tbo->ttm; amdgpu_ttm_gart_bind() local 880 amdgpu_ttm_backend_bind(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) amdgpu_ttm_backend_bind() argument 1019 amdgpu_ttm_backend_unbind(struct ttm_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_backend_unbind() argument 1047 amdgpu_ttm_backend_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_backend_destroy() argument 1104 amdgpu_ttm_tt_populate(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) amdgpu_ttm_tt_populate() argument 1145 amdgpu_ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm) amdgpu_ttm_tt_unpopulate() argument 1240 amdgpu_ttm_tt_get_usermm(struct ttm_tt *ttm) amdgpu_ttm_tt_get_usermm() argument 1258 amdgpu_ttm_tt_affect_userptr(struct ttm_tt *ttm, unsigned long start, unsigned long end, unsigned long *userptr) amdgpu_ttm_tt_affect_userptr() argument 1282 amdgpu_ttm_tt_is_userptr(struct ttm_tt *ttm) amdgpu_ttm_tt_is_userptr() argument 1295 amdgpu_ttm_tt_is_readonly(struct ttm_tt *ttm) amdgpu_ttm_tt_is_readonly() argument 1313 amdgpu_ttm_tt_pde_flags(struct ttm_tt *ttm, struct ttm_resource *mem) amdgpu_ttm_tt_pde_flags() argument 1345 amdgpu_ttm_tt_pte_flags(struct amdgpu_device *adev, struct ttm_tt *ttm, struct ttm_resource *mem) amdgpu_ttm_tt_pte_flags() argument [all...] |
H A D | amdgpu_ttm.h | 171 void amdgpu_ttm_tt_discard_user_pages(struct ttm_tt *ttm, 173 bool amdgpu_ttm_tt_get_user_pages_done(struct ttm_tt *ttm, 182 static inline void amdgpu_ttm_tt_discard_user_pages(struct ttm_tt *ttm, in amdgpu_ttm_tt_discard_user_pages() argument 186 static inline bool amdgpu_ttm_tt_get_user_pages_done(struct ttm_tt *ttm, in amdgpu_ttm_tt_get_user_pages_done() argument 193 void amdgpu_ttm_tt_set_user_pages(struct ttm_tt *ttm, struct page **pages); 198 bool amdgpu_ttm_tt_has_userptr(struct ttm_tt *ttm); 199 struct mm_struct *amdgpu_ttm_tt_get_usermm(struct ttm_tt *ttm); 200 bool amdgpu_ttm_tt_affect_userptr(struct ttm_tt *ttm, unsigned long start, 202 bool amdgpu_ttm_tt_userptr_invalidated(struct ttm_tt *ttm, 204 bool amdgpu_ttm_tt_is_userptr(struct ttm_tt *ttm); [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/i915/gem/ |
H A D | i915_gem_ttm.c | 8 #include <drm/ttm/ttm_placement.h> 9 #include <drm/ttm/ttm_tt.h> 37 * @ttm: The base TTM page vector. 50 struct ttm_tt ttm; member 189 struct ttm_tt *ttm, in i915_ttm_tt_shmem_populate() 194 struct i915_ttm_tt *i915_tt = container_of(ttm, typeof(*i915_tt), ttm); in i915_ttm_tt_shmem_populate() 196 const size_t size = (size_t)ttm->num_pages << PAGE_SHIFT; in i915_ttm_tt_shmem_populate() 234 ttm->pages[i++] = page; in i915_ttm_tt_shmem_populate() 236 if (ttm in i915_ttm_tt_shmem_populate() 188 i915_ttm_tt_shmem_populate(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) i915_ttm_tt_shmem_populate() argument 247 i915_ttm_tt_shmem_unpopulate(struct ttm_tt *ttm) i915_ttm_tt_shmem_unpopulate() argument 322 i915_ttm_tt_populate(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) i915_ttm_tt_populate() argument 334 i915_ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm) i915_ttm_tt_unpopulate() argument 350 i915_ttm_tt_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) i915_ttm_tt_destroy() argument 526 i915_ttm_tt_get_st(struct ttm_tt *ttm) i915_ttm_tt_get_st() argument [all...] |
H A D | i915_gem_ttm_pm.c | 6 #include <drm/ttm/ttm_placement.h> 7 #include <drm/ttm/ttm_tt.h> 24 if (obj->ttm.backup) { in i915_ttm_backup_free() 25 i915_gem_object_put(obj->ttm.backup); in i915_ttm_backup_free() 26 obj->ttm.backup = NULL; in i915_ttm_backup_free() 56 if (!i915_ttm_cpu_maps_iomem(bo->resource) || obj->ttm.backup) in i915_ttm_backup() 93 err = ttm_tt_populate(backup_bo->bdev, backup_bo->ttm, &ctx); in i915_ttm_backup() 106 obj->ttm.backup = backup; in i915_ttm_backup() 173 struct drm_i915_gem_object *backup = obj->ttm.backup; in i915_ttm_restore() 192 err = ttm_tt_populate(backup_bo->bdev, backup_bo->ttm, in i915_ttm_restore() [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/vmwgfx/ |
H A D | vmwgfx_ttm_buffer.c | 29 #include <drm/ttm/ttm_bo_driver.h> 30 #include <drm/ttm/ttm_placement.h> 31 #include <drm/ttm/ttm_page_alloc.h> 441 vsgt->pages = vmw_tt->dma_ttm.ttm.pages; in vmw_ttm_map_dma() 442 vsgt->num_pages = vmw_tt->dma_ttm.ttm.num_pages; in vmw_ttm_map_dma() 552 container_of(bo->ttm, struct vmw_ttm_tt, dma_ttm.ttm); in vmw_bo_sg_table() 559 struct ttm_tt *ttm, struct ttm_resource *bo_mem) in vmw_ttm_bind() 562 container_of(ttm, struct vmw_ttm_tt, dma_ttm.ttm); in vmw_ttm_bind() 558 vmw_ttm_bind(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) vmw_ttm_bind() argument 602 vmw_ttm_unbind(struct ttm_bo_device *bdev, struct ttm_tt *ttm) vmw_ttm_unbind() argument 628 vmw_ttm_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm) vmw_ttm_destroy() argument 648 vmw_ttm_populate(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) vmw_ttm_populate() argument 677 vmw_ttm_unpopulate(struct ttm_bo_device *bdev, struct ttm_tt *ttm) vmw_ttm_unpopulate() argument [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/qxl/ |
H A D | qxl_ttm.c | 32 #include <drm/ttm/ttm_bo_api.h> 33 #include <drm/ttm/ttm_bo_driver.h> 34 #include <drm/ttm/ttm_module.h> 35 #include <drm/ttm/ttm_page_alloc.h> 36 #include <drm/ttm/ttm_placement.h> 102 struct ttm_tt ttm; member 108 struct ttm_tt *ttm, in qxl_ttm_backend_bind() 111 struct qxl_ttm_tt *gtt = (void *)ttm; in qxl_ttm_backend_bind() 114 if (!ttm->num_pages) { in qxl_ttm_backend_bind() 116 ttm in qxl_ttm_backend_bind() 107 qxl_ttm_backend_bind(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) qxl_ttm_backend_bind() argument 122 qxl_ttm_backend_unbind(struct ttm_bo_device *bdev, struct ttm_tt *ttm) qxl_ttm_backend_unbind() argument 128 qxl_ttm_backend_destroy(struct ttm_bo_device *bdev, struct ttm_tt *ttm) qxl_ttm_backend_destroy() argument [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/qxl/ |
H A D | qxl_ttm.c | 32 #include <drm/ttm/ttm_bo.h> 33 #include <drm/ttm/ttm_placement.h> 34 #include <drm/ttm/ttm_range_manager.h> 35 #include <drm/ttm/ttm_tt.h> 102 static void qxl_ttm_backend_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) in qxl_ttm_backend_destroy() argument 104 ttm_tt_fini(ttm); in qxl_ttm_backend_destroy() 105 kfree(ttm); in qxl_ttm_backend_destroy() 111 struct ttm_tt *ttm; in qxl_ttm_tt_create() local 113 ttm = kzalloc(sizeof(struct ttm_tt), GFP_KERNEL); in qxl_ttm_tt_create() 114 if (ttm in qxl_ttm_tt_create() [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/vmwgfx/ |
H A D | vmwgfx_ttm_buffer.c | 30 #include <drm/ttm/ttm_placement.h> 293 container_of(bo->ttm, struct vmw_ttm_tt, dma_ttm); in vmw_bo_sg_table() 300 struct ttm_tt *ttm, struct ttm_resource *bo_mem) in vmw_ttm_bind() 303 container_of(ttm, struct vmw_ttm_tt, dma_ttm); in vmw_ttm_bind() 322 ttm->num_pages, vmw_be->gmr_id); in vmw_ttm_bind() 327 vmw_mob_create(ttm->num_pages); in vmw_ttm_bind() 333 &vmw_be->vsgt, ttm->num_pages, in vmw_ttm_bind() 347 struct ttm_tt *ttm) in vmw_ttm_unbind() 350 container_of(ttm, struct vmw_ttm_tt, dma_ttm); in vmw_ttm_unbind() 374 static void vmw_ttm_destroy(struct ttm_device *bdev, struct ttm_tt *ttm) in vmw_ttm_destroy() argument 299 vmw_ttm_bind(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_resource *bo_mem) vmw_ttm_bind() argument 346 vmw_ttm_unbind(struct ttm_device *bdev, struct ttm_tt *ttm) vmw_ttm_unbind() argument 388 vmw_ttm_populate(struct ttm_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) vmw_ttm_populate() argument 402 vmw_ttm_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm) vmw_ttm_unpopulate() argument [all...] |