| /linux-6.15/drivers/gpu/drm/loongson/ |
| H A D | lsdc_ttm.c | 205 ttm_resource_free(tbo, &tbo->resource); in lsdc_bo_move() 254 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_gpu_offset() local 271 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_size() local 289 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_pin() local 293 if (tbo->pin_count) in lsdc_bo_pin() 314 ttm_bo_pin(tbo); in lsdc_bo_pin() 324 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_unpin() local 332 ttm_bo_unpin(tbo); in lsdc_bo_unpin() 354 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_kmap() local 453 tbo = &lbo->tbo; in lsdc_bo_create() [all …]
|
| H A D | lsdc_gem.c | 44 struct ttm_buffer_object *tbo = to_ttm_bo(obj); in lsdc_gem_prime_get_sg_table() local 45 struct ttm_tt *tt = tbo->ttm; in lsdc_gem_prime_get_sg_table() 59 if (tbo) in lsdc_gem_object_free() 60 ttm_bo_put(tbo); in lsdc_gem_object_free() 66 struct lsdc_bo *lbo = to_lsdc_bo(tbo); in lsdc_gem_object_vmap() 80 ret = ttm_bo_vmap(tbo, &lbo->map); in lsdc_gem_object_vmap() 98 struct lsdc_bo *lbo = to_lsdc_bo(tbo); in lsdc_gem_object_vunmap() 107 ttm_bo_vunmap(tbo, &lbo->map); in lsdc_gem_object_vunmap() 118 ret = ttm_bo_mmap_obj(vma, tbo); in lsdc_gem_object_mmap() 163 gobj = &lbo->tbo.base; in lsdc_gem_object_create() [all …]
|
| H A D | lsdc_ttm.h | 24 struct ttm_buffer_object tbo; member 52 static inline struct lsdc_bo *to_lsdc_bo(struct ttm_buffer_object *tbo) in to_lsdc_bo() argument 54 return container_of(tbo, struct lsdc_bo, tbo); in to_lsdc_bo() 59 return container_of(gem, struct lsdc_bo, tbo.base); in gem_to_lsdc_bo()
|
| /linux-6.15/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_object.c | 66 drm_prime_gem_destroy(&bo->tbo.base, bo->tbo.sg); in amdgpu_bo_destroy() 79 amdgpu_bo_destroy(tbo); in amdgpu_bo_user_destroy() 466 ttm_resource_free(&(*bo_ptr)->tbo, &(*bo_ptr)->tbo.resource); in amdgpu_bo_create_kernel_at() 699 bo->tbo.priority = 2; in amdgpu_bo_create() 701 bo->tbo.priority = 1; in amdgpu_bo_create() 841 r = ttm_bo_kmap(&bo->tbo, 0, PFN_UP(bo->tbo.base.size), &bo->kmap); in amdgpu_bo_kmap() 961 ttm_bo_pin(&bo->tbo); in amdgpu_bo_pin() 989 ttm_bo_pin(&bo->tbo); in amdgpu_bo_pin() 1018 if (bo->tbo.pin_count) in amdgpu_bo_unpin() 1265 if (abo->tbo.base.dma_buf && !abo->tbo.base.import_attach && in amdgpu_bo_move_notify() [all …]
|
| H A D | amdgpu_dma_buf.c | 63 return amdgpu_ttm_adev(bo->tbo.bdev); in dma_buf_attach_adev() 172 if (!bo->tbo.pin_count) { in amdgpu_dma_buf_map() 188 switch (bo->tbo.resource->mem_type) { in amdgpu_dma_buf_map() 191 bo->tbo.ttm->pages, in amdgpu_dma_buf_map() 192 bo->tbo.ttm->num_pages); in amdgpu_dma_buf_map() 208 bo->tbo.base.size, attach->dev, in amdgpu_dma_buf_map() 278 if (!bo->tbo.pin_count && in amdgpu_dma_buf_begin_cpu_access() 317 if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm) || in amdgpu_gem_prime_export() 403 if (!bo->tbo.resource || bo->tbo.resource->mem_type == TTM_PL_SYSTEM) in amdgpu_dma_buf_move_notify() 406 r = ttm_bo_validate(&bo->tbo, &placement, &ctx); in amdgpu_dma_buf_move_notify() [all …]
|
| H A D | amdgpu_amdkfd_gpuvm.c | 412 if (bo->tbo.pin_count) in amdgpu_amdkfd_bo_validate() 777 bo->tbo.sg = NULL; in kfd_mem_dmaunmap_sg_bo() 1779 bo->tbo.sg = sg; in amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu() 1780 bo->tbo.ttm->sg = sg; in amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu() 1922 if (mem->bo->tbo.sg) { in amdgpu_amdkfd_gpuvm_free_memory_of_gpu() 1924 kfree(mem->bo->tbo.sg); in amdgpu_amdkfd_gpuvm_free_memory_of_gpu() 2004 bo_size = bo->tbo.base.size; in amdgpu_amdkfd_gpuvm_map_memory_to_gpu() 2620 gobj = &mem->bo->tbo.base; in validate_invalid_user_pages() 2641 if (bo->tbo.ttm->pages[0]) { in validate_invalid_user_pages() 2880 gobj = &mem->bo->tbo.base; in amdgpu_amdkfd_gpuvm_restore_process_bos() [all …]
|
| H A D | amdgpu_object.h | 107 struct ttm_buffer_object tbo; member 142 static inline struct amdgpu_bo *ttm_to_amdgpu_bo(struct ttm_buffer_object *tbo) in ttm_to_amdgpu_bo() argument 144 return container_of(tbo, struct amdgpu_bo, tbo); in ttm_to_amdgpu_bo() 187 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_bo_reserve() 190 r = ttm_bo_reserve(&bo->tbo, !no_intr, false, NULL); in amdgpu_bo_reserve() 201 ttm_bo_unreserve(&bo->tbo); in amdgpu_bo_unreserve() 206 return bo->tbo.base.size; in amdgpu_bo_size() 211 return bo->tbo.base.size / AMDGPU_GPU_PAGE_SIZE; in amdgpu_bo_ngpu_pages() 216 return (bo->tbo.page_alignment << PAGE_SHIFT) / AMDGPU_GPU_PAGE_SIZE; in amdgpu_bo_gpu_page_alignment() 227 return drm_vma_node_offset_addr(&bo->tbo.base.vma_node); in amdgpu_bo_mmap_offset()
|
| H A D | amdgpu_gem.c | 92 ttm_bo_put(&aobj->tbo); in amdgpu_gem_object_free() 125 *obj = &bo->tbo.base; in amdgpu_gem_object_create() 169 mm = amdgpu_ttm_tt_get_usermm(abo->tbo.ttm); in amdgpu_gem_object_open() 239 r = drm_exec_prepare_obj(&exec, &bo->tbo.base, 1); in amdgpu_gem_object_close() 279 if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm)) in amdgpu_gem_object_mmap() 370 resv = vm->root.bo->tbo.base.resv; in amdgpu_gem_create_ioctl() 507 if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm) || in amdgpu_mode_dumb_mmap() 864 info.bo_size = robj->tbo.base.size; in amdgpu_gem_op_ioctl() 874 if (robj->tbo.base.import_attach && in amdgpu_gem_op_ioctl() 880 if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) { in amdgpu_gem_op_ioctl() [all …]
|
| H A D | amdgpu_vm.c | 185 if (bo->tbo.type == ttm_bo_type_kernel) in amdgpu_vm_bo_evicted() 1278 if (abo->tbo.resource && in amdgpu_vm_bo_update() 1282 mem = bo->tbo.resource; in amdgpu_vm_bo_update() 1285 pages_addr = bo->tbo.ttm->dma_address; in amdgpu_vm_bo_update() 1354 if (bo->tbo.resource && in amdgpu_vm_bo_update() 1605 resv = bo_va->base.bo->tbo.base.resv; in amdgpu_vm_handle_moved() 1634 (!bo_va->base.bo->tbo.resource || in amdgpu_vm_handle_moved() 1725 dma_resv_assert_held(bo->tbo.base.resv); in amdgpu_vm_bo_add() 2156 ttm_bo_set_bulk_move(&bo->tbo, NULL); in amdgpu_vm_bo_del() 2253 if (bo->tbo.type == ttm_bo_type_kernel) in amdgpu_vm_bo_invalidate() [all …]
|
| H A D | amdgpu_cs.c | 143 if (amdgpu_ttm_tt_get_usermm(p->uf_bo->tbo.ttm)) in amdgpu_cs_p1_user_fence() 790 .resv = bo->tbo.base.resv in amdgpu_cs_bo_validate() 795 if (bo->tbo.pin_count) in amdgpu_cs_bo_validate() 802 (!bo->tbo.base.dma_buf || in amdgpu_cs_bo_validate() 878 e->user_pages = kvcalloc(bo->tbo.ttm->num_pages, in amdgpu_cs_parser_bos() 894 for (i = 0; i < bo->tbo.ttm->num_pages; i++) { in amdgpu_cs_parser_bos() 938 if (amdgpu_ttm_tt_is_userptr(e->bo->tbo.ttm) && in amdgpu_cs_parser_bos() 947 amdgpu_ttm_tt_set_user_pages(e->bo->tbo.ttm, in amdgpu_cs_parser_bos() 974 r = amdgpu_ttm_alloc_gart(&p->uf_bo->tbo); in amdgpu_cs_parser_bos() 1222 struct dma_resv *resv = bo->tbo.base.resv; in amdgpu_cs_sync_rings() [all …]
|
| /linux-6.15/drivers/gpu/drm/qxl/ |
| H A D | qxl_object.c | 37 bo = to_qxl_bo(tbo); in qxl_ttm_bo_destroy() 38 qdev = to_qxl(bo->tbo.base.dev); in qxl_ttm_bo_destroy() 62 if (qbo->tbo.base.size <= PAGE_SIZE) in qxl_ttm_placement_from_domain() 138 bo->tbo.priority = priority; in qxl_bo_create() 150 ttm_bo_pin(&bo->tbo); in qxl_bo_create() 151 ttm_bo_unreserve(&bo->tbo); in qxl_bo_create() 302 if (bo->tbo.pin_count) { in qxl_bo_pin_locked() 303 ttm_bo_pin(&bo->tbo); in qxl_bo_pin_locked() 309 ttm_bo_pin(&bo->tbo); in qxl_bo_pin_locked() 319 ttm_bo_unpin(&bo->tbo); in qxl_bo_unpin_locked() [all …]
|
| H A D | qxl_gem.c | 35 struct ttm_buffer_object *tbo; in qxl_gem_object_free() local 41 tbo = &qobj->tbo; in qxl_gem_object_free() 42 ttm_bo_put(tbo); in qxl_gem_object_free() 66 *obj = &qbo->tbo.base; in qxl_gem_object_create()
|
| H A D | qxl_object.h | 34 r = ttm_bo_reserve(&bo->tbo, true, false, NULL); in qxl_bo_reserve() 37 struct drm_device *ddev = bo->tbo.base.dev; in qxl_bo_reserve() 48 ttm_bo_unreserve(&bo->tbo); in qxl_bo_unreserve() 53 return bo->tbo.base.size; in qxl_bo_size()
|
| H A D | qxl_release.c | 193 if (!bo->tbo.pin_count) { in qxl_release_validate_bo() 195 ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in qxl_release_validate_bo() 200 ret = dma_resv_reserve_fences(bo->tbo.base.resv, 1); in qxl_release_validate_bo() 205 ret = qxl_bo_check_id(to_qxl(bo->tbo.base.dev), bo); in qxl_release_validate_bo() 226 &entry->bo->tbo.base, in qxl_release_reserve_list() 422 bdev = bo->tbo.bdev; in qxl_release_fence_buffer_objects() 436 dma_resv_add_fence(bo->tbo.base.resv, &release->base, in qxl_release_fence_buffer_objects() 438 ttm_bo_move_to_lru_tail_unlocked(&bo->tbo); in qxl_release_fence_buffer_objects()
|
| /linux-6.15/drivers/gpu/drm/radeon/ |
| H A D | radeon_object.c | 56 bo = container_of(tbo, struct radeon_bo, tbo); in radeon_ttm_bo_destroy() 63 if (bo->tbo.base.import_attach) in radeon_ttm_bo_destroy() 64 drm_prime_gem_destroy(&bo->tbo.base, bo->tbo.sg); in radeon_ttm_bo_destroy() 234 r = ttm_bo_kmap(&bo->tbo, 0, PFN_UP(bo->tbo.base.size), &bo->kmap); in radeon_bo_kmap() 281 if (bo->tbo.pin_count) { in radeon_bo_pin_restricted() 282 ttm_bo_pin(&bo->tbo); in radeon_bo_pin_restricted() 318 ttm_bo_pin(&bo->tbo); in radeon_bo_pin_restricted() 338 ttm_bo_unpin(&bo->tbo); in radeon_bo_unpin() 339 if (!bo->tbo.pin_count) { in radeon_bo_unpin() 376 &bo->tbo.base, bo, (unsigned long)bo->tbo.base.size, in radeon_bo_force_delete() [all …]
|
| H A D | radeon_object.h | 68 r = ttm_bo_reserve(&bo->tbo, !no_intr, false, NULL); in radeon_bo_reserve() 79 ttm_bo_unreserve(&bo->tbo); in radeon_bo_unreserve() 96 rdev = radeon_get_rdev(bo->tbo.bdev); in radeon_bo_gpu_offset() 98 switch (bo->tbo.resource->mem_type) { in radeon_bo_gpu_offset() 107 return (bo->tbo.resource->start << PAGE_SHIFT) + start; in radeon_bo_gpu_offset() 112 return bo->tbo.base.size; in radeon_bo_size() 117 return bo->tbo.base.size / RADEON_GPU_PAGE_SIZE; in radeon_bo_ngpu_pages() 122 return (bo->tbo.page_alignment << PAGE_SHIFT) / RADEON_GPU_PAGE_SIZE; in radeon_bo_gpu_page_alignment() 133 return drm_vma_node_offset_addr(&bo->tbo.base.vma_node); in radeon_bo_mmap_offset()
|
| H A D | radeon_mn.c | 57 if (!bo->tbo.ttm || !radeon_ttm_tt_is_bound(bo->tbo.bdev, bo->tbo.ttm)) in radeon_mn_invalidate() 69 r = dma_resv_wait_timeout(bo->tbo.base.resv, DMA_RESV_USAGE_BOOKKEEP, in radeon_mn_invalidate() 75 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in radeon_mn_invalidate()
|
| H A D | radeon_prime.c | 41 return drm_prime_pages_to_sg(obj->dev, bo->tbo.ttm->pages, in radeon_gem_prime_get_sg_table() 42 bo->tbo.ttm->num_pages); in radeon_gem_prime_get_sg_table() 61 bo->tbo.base.funcs = &radeon_gem_object_funcs; in radeon_gem_prime_import_sg_table() 68 return &bo->tbo.base; in radeon_gem_prime_import_sg_table() 98 if (radeon_ttm_tt_has_userptr(bo->rdev, bo->tbo.ttm)) in radeon_gem_prime_export()
|
| H A D | radeon_gem.c | 89 ttm_bo_put(&robj->tbo); in radeon_gem_object_free() 132 *obj = &robj->tbo.base; in radeon_gem_object_create() 163 r = dma_resv_wait_timeout(robj->tbo.base.resv, in radeon_gem_set_domain() 269 struct radeon_device *rdev = radeon_get_rdev(bo->tbo.bdev); in radeon_gem_object_mmap() 271 if (radeon_ttm_tt_has_userptr(rdev, bo->tbo.ttm)) in radeon_gem_object_mmap() 409 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in radeon_gem_userptr_ioctl() 515 cur_placement = READ_ONCE(robj->tbo.resource->mem_type); in radeon_gem_busy_ioctl() 546 cur_placement = READ_ONCE(robj->tbo.resource->mem_type); in radeon_gem_wait_idle_ioctl() 623 r = drm_exec_prepare_obj(&exec, &entry->robj->tbo.base, in radeon_gem_va_update_vm() 630 r = drm_exec_prepare_obj(&exec, &bo_va->bo->tbo.base, 1); in radeon_gem_va_update_vm() [all …]
|
| /linux-6.15/drivers/gpu/drm/vmwgfx/ |
| H A D | vmwgfx_bo.c | 39 WARN_ON(vbo->tbo.base.funcs && in vmw_bo_release() 40 kref_read(&vbo->tbo.base.refcount) != 0); in vmw_bo_release() 64 drm_gem_object_release(&vbo->tbo.base); in vmw_bo_release() 98 struct ttm_buffer_object *bo = &buf->tbo; in vmw_bo_pin_in_placement() 134 struct ttm_buffer_object *bo = &buf->tbo; in vmw_bo_pin_in_vram_or_gmr() 203 struct ttm_buffer_object *bo = &buf->tbo; in vmw_bo_pin_in_start_of_vram() 219 buf->tbo.pin_count == 0) { in vmw_bo_pin_in_start_of_vram() 428 vmw_bo->tbo.priority = 3; in vmw_bo_init() 444 ttm_bo_pin(&vmw_bo->tbo); in vmw_bo_init() 446 ttm_bo_unreserve(&vmw_bo->tbo); in vmw_bo_init() [all …]
|
| H A D | vmwgfx_gem.c | 166 (*p_vbo)->tbo.base.funcs = &vmw_gem_object_funcs; in vmw_gem_object_create() 221 vbo->tbo.base.funcs = &vmw_gem_object_funcs; in vmw_prime_import_sg_table() 223 gem = &vbo->tbo.base; in vmw_prime_import_sg_table() 251 drm_gem_object_put(&vbo->tbo.base); in vmw_gem_object_create_ioctl() 263 switch (bo->tbo.resource->mem_type) { in vmw_bo_print_info() 284 switch (bo->tbo.type) { in vmw_bo_print_info() 300 id, bo->tbo.base.size, placement, type); in vmw_bo_print_info() 302 bo->tbo.priority, in vmw_bo_print_info() 303 bo->tbo.pin_count, in vmw_bo_print_info() 304 kref_read(&bo->tbo.base.refcount), in vmw_bo_print_info() [all …]
|
| H A D | vmwgfx_bo.h | 83 struct ttm_buffer_object tbo; member 163 vbo->tbo.priority = i; in vmw_bo_prio_adjust() 168 vbo->tbo.priority = 3; in vmw_bo_prio_adjust() 207 ttm_bo_put(&tmp_buf->tbo); in vmw_bo_unreference() 212 ttm_bo_get(&buf->tbo); in vmw_bo_reference() 218 drm_gem_object_get(&vbo->tbo.base); in vmw_user_bo_ref() 228 drm_gem_object_put(&tmp_buf->tbo.base); in vmw_user_bo_unref() 233 return container_of((gobj), struct vmw_bo, tbo.base); in to_vmw_bo()
|
| H A D | vmwgfx_page_dirty.c | 85 pgoff_t offset = drm_vma_node_start(&vbo->tbo.base.vma_node); in vmw_bo_dirty_scan_pagetable() 86 struct address_space *mapping = vbo->tbo.bdev->dev_mapping; in vmw_bo_dirty_scan_pagetable() 123 unsigned long offset = drm_vma_node_start(&vbo->tbo.base.vma_node); in vmw_bo_dirty_scan_mkwrite() 124 struct address_space *mapping = vbo->tbo.bdev->dev_mapping; in vmw_bo_dirty_scan_mkwrite() 130 num_marked = wp_shared_mapping_range(vbo->tbo.bdev->dev_mapping, in vmw_bo_dirty_scan_mkwrite() 188 unsigned long offset = drm_vma_node_start(&vbo->tbo.base.vma_node); in vmw_bo_dirty_pre_unmap() 189 struct address_space *mapping = vbo->tbo.bdev->dev_mapping; in vmw_bo_dirty_pre_unmap() 213 struct address_space *mapping = vbo->tbo.bdev->dev_mapping; in vmw_bo_dirty_unmap() 233 pgoff_t num_pages = PFN_UP(vbo->tbo.resource->size); in vmw_bo_dirty_add() 256 struct address_space *mapping = vbo->tbo.bdev->dev_mapping; in vmw_bo_dirty_add() [all …]
|
| H A D | vmwgfx_resource.c | 47 dma_resv_assert_held(gbo->tbo.base.resv); in vmw_resource_mob_attach() 75 dma_resv_assert_held(gbo->tbo.base.resv); in vmw_resource_mob_detach() 534 ttm_bo_get(&res->guest_memory_bo->tbo); in vmw_resource_check_buffer() 535 val_buf->bo = &res->guest_memory_bo->tbo; in vmw_resource_check_buffer() 697 val_buf.bo = &res->guest_memory_bo->tbo; in vmw_resource_validate() 763 .bo = &vbo->tbo, in vmw_resource_unbind_list() 986 if (!vbo->tbo.pin_count) { in vmw_resource_pin() 991 (&vbo->tbo, in vmw_resource_pin() 995 ttm_bo_unreserve(&vbo->tbo); in vmw_resource_pin() 1005 ttm_bo_unreserve(&vbo->tbo); in vmw_resource_pin() [all …]
|
| /linux-6.15/drivers/gpu/drm/xe/ |
| H A D | xe_ttm_sys_mgr.c | 19 struct ttm_buffer_object *tbo; member 30 struct ttm_buffer_object *tbo, in xe_ttm_sys_mgr_new() argument 41 node->tbo = tbo; in xe_ttm_sys_mgr_new() 42 ttm_resource_init(tbo, place, &node->base.base); in xe_ttm_sys_mgr_new()
|