/openbmc/linux/drivers/staging/media/atomisp/pci/hmm/ |
H A D | hmm_bo.c | 59 memset(bo, 0, sizeof(*bo)); in __bo_init() 259 bo->pgnr = bo->pgnr - pgnr; in __bo_break_up() 276 if (!bo->prev && !bo->next) { in __bo_take_off_handling() 283 } else if (!bo->prev && bo->next) { in __bo_take_off_handling() 293 } else if (bo->prev && !bo->next) { in __bo_take_off_handling() 301 } else if (bo->prev && bo->next) { in __bo_take_off_handling() 302 bo->next->prev = bo->prev; in __bo_take_off_handling() 303 bo->prev->next = bo->next; in __bo_take_off_handling() 485 bo = __bo_merge(prev_bo, bo); in hmm_bo_release() 492 bo = __bo_merge(bo, next_bo); in hmm_bo_release() [all …]
|
H A D | hmm.c | 72 hmm_bo_type_string[bo->type], bo->pgnr); in bo_show() 74 total[bo->type] += bo->pgnr; in bo_show() 188 if (!bo) { in __hmm_alloc() 210 return bo->start; in __hmm_alloc() 241 if (!bo) { in hmm_free() 255 if (!bo) { in hmm_check_bo() 528 if (!bo) { in hmm_virt_to_phys() 546 if (!bo) { in hmm_mmap() 563 if (!bo) { in hmm_vmap() 583 if (!bo) { in hmm_flush_vmap() [all …]
|
/openbmc/linux/drivers/accel/ivpu/ |
H A D | ivpu_gem.c | 203 ret = bo->ops->alloc_pages(bo); in ivpu_bo_alloc_and_map_pages_locked() 209 ret = bo->ops->map_pages(bo); in ivpu_bo_alloc_and_map_pages_locked() 217 bo->ops->free_pages(bo); in ivpu_bo_alloc_and_map_pages_locked() 226 bo->ops->unmap_pages(bo); in ivpu_bo_unmap_and_free_pages() 228 bo->ops->free_pages(bo); in ivpu_bo_unmap_and_free_pages() 250 bo->ctx->id, bo->handle); in ivpu_bo_pin() 311 ctx->id, bo->vpu_addr, (bool)bo->sgt, bo->mmu_mapped); in ivpu_bo_free_vpu_addr() 411 bo->ctx->id, bo->vpu_addr, (bool)bo->sgt, bo->mmu_mapped); in ivpu_bo_free() 441 bo->ctx->id, bo->handle, bo->vpu_addr, bo->base.size, bo->ops->name); in ivpu_bo_mmap() 556 file_priv->ctx.id, bo->vpu_addr, bo->base.size, bo->flags); in ivpu_bo_create_ioctl() [all …]
|
H A D | ivpu_gem.h | 47 int (*map_pages)(struct ivpu_bo *bo); 51 int ivpu_bo_pin(struct ivpu_bo *bo); 73 if (offset > bo->base.size || !bo->pages) in ivpu_bo_get_page() 91 if (bo->flags & DRM_IVPU_BO_WC) in ivpu_bo_pgprot() 102 return to_ivpu_device(bo->base.dev); in ivpu_bo_to_vdev() 107 if (vpu_addr < bo->vpu_addr) in ivpu_to_cpu_addr() 110 if (vpu_addr >= (bo->vpu_addr + bo->base.size)) in ivpu_to_cpu_addr() 113 return bo->kvaddr + (vpu_addr - bo->vpu_addr); in ivpu_to_cpu_addr() 118 if (cpu_addr < bo->kvaddr) in cpu_to_vpu_addr() 121 if (cpu_addr >= (bo->kvaddr + bo->base.size)) in cpu_to_vpu_addr() [all …]
|
/openbmc/linux/drivers/gpu/drm/ttm/ |
H A D | ttm_bo.c | 180 bo->bdev->funcs->delete_mem_notify(bo); in ttm_bo_cleanup_memtype_use() 183 ttm_resource_free(bo, &bo->resource); in ttm_bo_cleanup_memtype_use() 190 if (bo->base.resv == &bo->base._resv) in ttm_bo_individualize_resv() 206 bo->base.resv = &bo->base._resv; in ttm_bo_individualize_resv() 341 bo->bdev->funcs->release_notify(bo); in ttm_bo_release() 382 bo->destroy(bo); in ttm_bo_release() 614 bo = res->bo; in ttm_mem_evict_first() 983 bo->base.resv = &bo->base._resv; in ttm_bo_init_reserved() 1199 bo->bdev->funcs->swap_notify(bo); in ttm_bo_swapout() 1220 ttm_tt_unpopulate(bo->bdev, bo->ttm); in ttm_bo_tt_destroy() [all …]
|
H A D | ttm_bo_util.c | 271 ttm_bo_get(bo); in ttm_buffer_object_transfer() 272 fbo->bo = bo; in ttm_buffer_object_transfer() 347 ttm_manager_type(bo->bdev, bo->resource->mem_type); in ttm_bo_kmap_ttm() 404 map->bo = bo; in ttm_bo_kmap() 410 ret = ttm_mem_io_reserve(bo->bdev, bo->resource); in ttm_bo_kmap() 449 ttm_mem_io_free(map->bo->bdev, map->bo->resource); in ttm_bo_kunmap() 553 ttm_mem_io_free(bo->bdev, bo->resource); in ttm_bo_vunmap() 571 ttm_resource_free(bo, &bo->resource); in ttm_bo_wait_free_node() 632 ttm_resource_free(bo, &bo->resource); in ttm_bo_move_pipeline_evict() 728 ttm_tt_unpopulate(bo->bdev, bo->ttm); in ttm_bo_pipeline_gutting() [all …]
|
H A D | ttm_bo_vm.c | 61 ttm_bo_get(bo); in ttm_bo_vm_fault_idle() 67 ttm_bo_put(bo); in ttm_bo_vm_fault_idle() 133 ttm_bo_get(bo); in ttm_bo_vm_reserve() 138 ttm_bo_put(bo); in ttm_bo_vm_reserve() 152 if (bo->ttm && (bo->ttm->page_flags & TTM_TT_FLAG_EXTERNAL)) { in ttm_bo_vm_reserve() 218 prot = ttm_io_prot(bo, bo->resource, prot); in ttm_bo_vm_fault_reserved() 226 ttm = bo->ttm; in ttm_bo_vm_fault_reserved() 356 ttm_bo_get(bo); in ttm_bo_vm_open() 364 ttm_bo_put(bo); in ttm_bo_vm_close() 438 ttm_bo_unreserve(bo); in ttm_bo_vm_access() [all …]
|
/openbmc/linux/drivers/gpu/drm/qxl/ |
H A D | qxl_object.c | 49 kfree(bo); in qxl_ttm_bo_destroy() 130 kfree(bo); in qxl_bo_create() 176 r = ttm_bo_vmap(&bo->tbo, &bo->map); in qxl_bo_vmap_locked() 185 bo->kptr = (void *)bo->map.vaddr_iomem; in qxl_bo_vmap_locked() 187 bo->kptr = bo->map.vaddr; in qxl_bo_vmap_locked() 250 ttm_bo_vunmap(&bo->tbo, &bo->map); in qxl_bo_vunmap_locked() 286 *bo = NULL; in qxl_bo_unref() 292 return bo; in qxl_bo_ref() 305 qxl_ttm_placement_from_domain(bo, bo->type); in __qxl_bo_pin() 306 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in __qxl_bo_pin() [all …]
|
H A D | qxl_object.h | 30 static inline int qxl_bo_reserve(struct qxl_bo *bo) in qxl_bo_reserve() argument 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() 39 dev_err(ddev->dev, "%p reserve failed\n", bo); in qxl_bo_reserve() 48 ttm_bo_unreserve(&bo->tbo); in qxl_bo_unreserve() 53 return bo->tbo.base.size; in qxl_bo_size() 64 int qxl_bo_vunmap(struct qxl_bo *bo); 65 void qxl_bo_vunmap_locked(struct qxl_bo *bo); 69 extern void qxl_bo_unref(struct qxl_bo **bo); 70 extern int qxl_bo_pin(struct qxl_bo *bo); [all …]
|
/openbmc/linux/drivers/gpu/drm/radeon/ |
H A D | radeon_object.c | 64 drm_prime_gem_destroy(&bo->tbo.base, bo->tbo.sg); in radeon_ttm_bo_destroy() 66 kfree(bo); in radeon_ttm_bo_destroy() 235 r = ttm_bo_kmap(&bo->tbo, 0, PFN_UP(bo->tbo.base.size), &bo->kmap); in radeon_bo_kmap() 262 return bo; in radeon_bo_ref() 326 bo->rdev->vram_pin_size += radeon_bo_size(bo); in radeon_bo_pin_restricted() 328 bo->rdev->gart_pin_size += radeon_bo_size(bo); in radeon_bo_pin_restricted() 330 dev_err(bo->rdev->dev, "%p pin failed\n", bo); in radeon_bo_pin_restricted() 345 bo->rdev->vram_pin_size -= radeon_bo_size(bo); in radeon_bo_unpin() 347 bo->rdev->gart_pin_size -= radeon_bo_size(bo); in radeon_bo_unpin() 380 &bo->tbo.base, bo, (unsigned long)bo->tbo.base.size, in radeon_bo_force_delete() [all …]
|
H A D | radeon_prime.c | 42 bo->tbo.ttm->num_pages); in radeon_gem_prime_get_sg_table() 51 struct radeon_bo *bo; in radeon_gem_prime_import_sg_table() local 67 bo->prime_shared_count = 1; in radeon_gem_prime_import_sg_table() 68 return &bo->tbo.base; in radeon_gem_prime_import_sg_table() 83 bo->prime_shared_count++; in radeon_gem_prime_pin() 85 radeon_bo_unreserve(bo); in radeon_gem_prime_pin() 98 radeon_bo_unpin(bo); in radeon_gem_prime_unpin() 99 if (bo->prime_shared_count) in radeon_gem_prime_unpin() 100 bo->prime_shared_count--; in radeon_gem_prime_unpin() 101 radeon_bo_unreserve(bo); in radeon_gem_prime_unpin() [all …]
|
H A D | radeon_object.h | 68 r = ttm_bo_reserve(&bo->tbo, !no_intr, false, NULL); in radeon_bo_reserve() 71 dev_err(bo->rdev->dev, "%p reserve failed\n", bo); 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() 143 extern void radeon_bo_kunmap(struct radeon_bo *bo); 145 extern void radeon_bo_unref(struct radeon_bo **bo); [all …]
|
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() 63 r = radeon_bo_reserve(bo, true); in radeon_mn_invalidate() 74 radeon_ttm_placement_from_domain(bo, RADEON_GEM_DOMAIN_CPU); in radeon_mn_invalidate() 75 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in radeon_mn_invalidate() 79 radeon_bo_unreserve(bo); in radeon_mn_invalidate() 101 radeon_bo_size(bo), &radeon_mn_ops); in radeon_mn_register() 111 mmu_interval_read_begin(&bo->notifier); in radeon_mn_register() 122 void radeon_mn_unregister(struct radeon_bo *bo) in radeon_mn_unregister() argument 124 if (!bo->notifier.mm) in radeon_mn_unregister() 126 mmu_interval_notifier_remove(&bo->notifier); in radeon_mn_unregister() [all …]
|
/openbmc/linux/drivers/gpu/drm/tegra/ |
H A D | gem.c | 72 map->bo = host1x_bo_get(bo); in tegra_bo_pin() 233 bo->mm = kzalloc(sizeof(*bo->mm), GFP_KERNEL); in tegra_bo_iommu_map() 240 bo->mm, bo->gem.size, PAGE_SIZE, 0, 0); in tegra_bo_iommu_map() 247 bo->iova = bo->mm->start; in tegra_bo_iommu_map() 249 bo->size = iommu_map_sgtable(tegra->domain, bo->iova, bo->sgt, prot); in tegra_bo_iommu_map() 274 iommu_unmap(tegra->domain, bo->iova, bo->size); in tegra_bo_iommu_unmap() 295 bo = kzalloc(sizeof(*bo), GFP_KERNEL); in tegra_bo_alloc_object() 329 dma_free_wc(drm->dev, bo->gem.size, bo->vaddr, bo->iova); in tegra_bo_free() 337 bo->pages = drm_gem_get_pages(&bo->gem); in tegra_bo_get_pages() 341 bo->num_pages = bo->gem.size >> PAGE_SHIFT; in tegra_bo_get_pages() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_object.c | 63 drm_prime_gem_destroy(&bo->tbo.base, bo->tbo.sg); in amdgpu_bo_destroy() 66 kvfree(bo); in amdgpu_bo_destroy() 588 bo->allowed_domains = bo->preferred_domains; in amdgpu_bo_create() 650 *bo_ptr = bo; in amdgpu_bo_create() 804 r = ttm_bo_kmap(&bo->tbo, 0, PFN_UP(bo->tbo.base.size), &bo->kmap); in amdgpu_bo_kmap() 838 if (bo->kmap.bo) in amdgpu_bo_kunmap() 857 return bo; in amdgpu_bo_ref() 875 *bo = NULL; in amdgpu_bo_unref() 974 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in amdgpu_bo_pin_restricted() 1363 && bo->base.resv != &bo->base._resv); in amdgpu_bo_release_notify() [all …]
|
H A D | amdgpu_object.h | 58 void (*destroy)(struct ttm_buffer_object *bo); 123 struct amdgpu_bo bo; member 132 struct amdgpu_bo bo; member 224 ttm_bo_unreserve(&bo->tbo); in amdgpu_bo_unreserve() 229 return bo->tbo.base.size; in amdgpu_bo_size() 282 if (bo->tbo.type == ttm_bo_type_kernel) in amdgpu_bo_shadowed() 283 return to_amdgpu_bo_vm(bo)->shadow; in amdgpu_bo_shadowed() 314 void *amdgpu_bo_kptr(struct amdgpu_bo *bo); 315 void amdgpu_bo_kunmap(struct amdgpu_bo *bo); 317 void amdgpu_bo_unref(struct amdgpu_bo **bo); [all …]
|
H A D | amdgpu_dma_buf.c | 123 amdgpu_bo_unpin(bo); in amdgpu_dma_buf_unpin() 149 if (!bo->tbo.pin_count) { in amdgpu_dma_buf_map() 160 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in amdgpu_dma_buf_map() 172 bo->tbo.ttm->pages, in amdgpu_dma_buf_map() 254 if (!bo->tbo.pin_count && in amdgpu_dma_buf_begin_cpu_access() 257 ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in amdgpu_dma_buf_begin_cpu_access() 260 amdgpu_bo_unreserve(bo); in amdgpu_dma_buf_begin_cpu_access() 323 struct amdgpu_bo *bo; in amdgpu_dma_buf_create_obj() local 343 bo = gem_to_amdgpu_bo(gobj); in amdgpu_dma_buf_create_obj() 375 if (!bo->tbo.resource || bo->tbo.resource->mem_type == TTM_PL_SYSTEM) in amdgpu_dma_buf_move_notify() [all …]
|
H A D | amdgpu_amdkfd_gpuvm.c | 875 bo[i] = mem->bo; in kfd_mem_attach() 880 bo[i] = bo[0]; in kfd_mem_attach() 1001 struct amdgpu_bo *bo = mem->bo; in init_user_pages() local 1092 struct amdgpu_bo *bo = mem->bo; in reserve_bo_and_vm() local 1134 struct amdgpu_bo *bo = mem->bo; in reserve_bo_and_cond_vms() local 1747 (*mem)->bo = bo; in amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu() 1930 bo = mem->bo; in amdgpu_amdkfd_gpuvm_map_memory_to_gpu() 2153 bo = amdgpu_bo_ref(bo); in amdgpu_amdkfd_map_gtt_bo_to_gart() 2310 (*mem)->bo = bo; in amdgpu_amdkfd_gpuvm_import_dmabuf() 2422 bo = mem->bo; in update_invalid_user_pages() [all …]
|
/openbmc/linux/drivers/gpu/drm/vc4/ |
H A D | vc4_bo.c | 380 if (bo) in vc4_bo_get_from_cache() 383 return bo; in vc4_bo_get_from_cache() 402 bo = kzalloc(sizeof(*bo), GFP_KERNEL); in vc4_create_object() 403 if (!bo) in vc4_create_object() 438 if (bo) { in vc4_bo_create() 440 memset(bo->base.vaddr, 0, bo->base.base.size); in vc4_bo_create() 441 return bo; in vc4_bo_create() 488 return bo; in vc4_bo_create() 507 if (IS_ERR(bo)) in vc4_bo_dumb_create() 798 if (IS_ERR(bo)) in vc4_create_bo_ioctl() [all …]
|
/openbmc/linux/include/drm/ttm/ |
H A D | ttm_bo.h | 160 struct ttm_buffer_object *bo; member 195 kref_get(&bo->kref); in ttm_bo_get() 213 return bo; in ttm_bo_get_unless_zero() 293 spin_lock(&bo->bdev->lru_lock); in ttm_bo_move_to_lru_tail_unlocked() 294 ttm_bo_move_to_lru_tail(bo); in ttm_bo_move_to_lru_tail_unlocked() 295 spin_unlock(&bo->bdev->lru_lock); in ttm_bo_move_to_lru_tail_unlocked() 301 WARN_ON(bo->resource); in ttm_bo_assign_mem() 302 bo->resource = new_mem; in ttm_bo_assign_mem() 315 ttm_resource_free(bo, &bo->resource); in ttm_bo_move_null() 316 ttm_bo_assign_mem(bo, new_mem); in ttm_bo_move_null() [all …]
|
/openbmc/linux/drivers/gpu/drm/lima/ |
H A D | lima_gem.c | 27 size_t new_size = bo->heap_size ? bo->heap_size * 2 : in lima_heap_alloc() 32 if (bo->heap_size >= bo->base.base.size) in lima_heap_alloc() 39 if (bo->base.pages) { in lima_heap_alloc() 72 if (bo->base.sgt) { in lima_heap_alloc() 76 bo->base.sgt = kmalloc(sizeof(*bo->base.sgt), GFP_KERNEL); in lima_heap_alloc() 115 struct lima_bo *bo; in lima_gem_create_handle() local 185 if (bo->heap_size) in lima_gem_pin() 195 if (bo->heap_size) in lima_gem_vmap() 229 bo = kzalloc(sizeof(*bo), GFP_KERNEL); in lima_gem_create_object() 230 if (!bo) in lima_gem_create_object() [all …]
|
/openbmc/linux/drivers/gpu/drm/panfrost/ |
H A D | panfrost_gem.c | 38 if (bo->sgts) { in panfrost_gem_free_object() 43 if (bo->sgts[i].sgl) { in panfrost_gem_free_object() 49 kvfree(bo->sgts); in panfrost_gem_free_object() 52 drm_gem_shmem_free(&bo->base); in panfrost_gem_free_object() 131 mapping->obj = bo; in panfrost_gem_open() 139 if (!bo->noexec) in panfrost_gem_open() 152 if (!bo->is_heap) { in panfrost_gem_open() 192 if (bo->is_heap) in panfrost_gem_pin() 255 return bo; in panfrost_gem_create() 270 bo = to_panfrost_bo(obj); in panfrost_gem_prime_import_sg_table() [all …]
|
/openbmc/linux/drivers/gpu/drm/vmwgfx/ |
H A D | vmwgfx_bo.c | 87 ttm_bo_unreserve(bo); in vmw_bo_pin_in_placement() 135 ttm_bo_unreserve(bo); in vmw_bo_pin_in_vram_or_gmr() 193 bo->resource->start < PFN_UP(bo->resource->size) && in vmw_bo_pin_in_start_of_vram() 215 ttm_bo_unreserve(bo); in vmw_bo_pin_in_start_of_vram() 246 ttm_bo_unreserve(bo); in vmw_bo_unpin() 307 ttm_bo_pin(bo); in vmw_bo_pin_reserved() 309 ttm_bo_unpin(bo); in vmw_bo_pin_reserved() 338 ret = ttm_bo_kmap(bo, 0, PFN_UP(bo->base.size), &vbo->map); in vmw_bo_map_and_cache() 356 if (vbo->map.bo == NULL) in vmw_bo_unmap() 360 vbo->map.bo = NULL; in vmw_bo_unmap() [all …]
|
/openbmc/linux/drivers/gpu/drm/v3d/ |
H A D | v3d_bo.c | 36 v3d_mmu_remove_ptes(bo); in v3d_free_object() 70 struct v3d_bo *bo; in v3d_create_object() local 76 bo = kzalloc(sizeof(*bo), GFP_KERNEL); in v3d_create_object() 77 if (!bo) in v3d_create_object() 79 obj = &bo->base.base; in v3d_create_object() 85 return &bo->base.base; in v3d_create_object() 130 struct v3d_bo *bo; in v3d_bo_create() local 142 return bo; in v3d_bo_create() 183 if (IS_ERR(bo)) in v3d_create_bo_ioctl() 184 return PTR_ERR(bo); in v3d_create_bo_ioctl() [all …]
|
/openbmc/linux/drivers/staging/media/atomisp/include/hmm/ |
H A D | hmm_bo.h | 47 #define check_bo_status_no_goto(bo, _status, label) \ argument 62 #define check_bo_null_return(bo, exp) \ argument 65 #define check_bo_null_return_void(bo) \ argument 145 void hmm_bo_release(struct hmm_buffer_object *bo); 164 void hmm_bo_ref(struct hmm_buffer_object *bo); 199 void hmm_bo_unref(struct hmm_buffer_object *bo); 217 int hmm_bo_bind(struct hmm_buffer_object *bo); 218 void hmm_bo_unbind(struct hmm_buffer_object *bo); 219 int hmm_bo_binded(struct hmm_buffer_object *bo); 236 void hmm_bo_vunmap(struct hmm_buffer_object *bo); [all …]
|