| /netbsd-src/sys/external/bsd/drm2/dist/drm/qxl/ |
| H A D | qxl_object.c | 37 struct qxl_bo *bo; in qxl_ttm_bo_destroy() local 40 bo = to_qxl_bo(tbo); in qxl_ttm_bo_destroy() 41 qdev = (struct qxl_device *)bo->tbo.base.dev->dev_private; in qxl_ttm_bo_destroy() 43 qxl_surface_evict(qdev, bo, false); in qxl_ttm_bo_destroy() 44 WARN_ON_ONCE(bo->map_count > 0); in qxl_ttm_bo_destroy() 46 list_del_init(&bo->list); in qxl_ttm_bo_destroy() 48 drm_gem_object_release(&bo->tbo.base); in qxl_ttm_bo_destroy() 49 kfree(bo); in qxl_ttm_bo_destroy() 52 bool qxl_ttm_bo_is_qxl_bo(struct ttm_buffer_object *bo) in qxl_ttm_bo_is_qxl_bo() argument 54 if (bo->destroy == &qxl_ttm_bo_destroy) in qxl_ttm_bo_is_qxl_bo() [all …]
|
| H A D | qxl_object.h | 32 static inline int qxl_bo_reserve(struct qxl_bo *bo, bool no_wait) in qxl_bo_reserve() argument 36 r = ttm_bo_reserve(&bo->tbo, true, no_wait, NULL); in qxl_bo_reserve() 39 struct drm_device *ddev = bo->tbo.base.dev; in qxl_bo_reserve() 41 dev_err(ddev->dev, "%p reserve failed\n", bo); in qxl_bo_reserve() 48 static inline void qxl_bo_unreserve(struct qxl_bo *bo) in qxl_bo_unreserve() argument 50 ttm_bo_unreserve(&bo->tbo); in qxl_bo_unreserve() 53 static inline u64 qxl_bo_gpu_offset(struct qxl_bo *bo) in qxl_bo_gpu_offset() argument 55 return bo->tbo.offset; in qxl_bo_gpu_offset() 58 static inline unsigned long qxl_bo_size(struct qxl_bo *bo) in qxl_bo_size() argument 60 return bo->tbo.num_pages << PAGE_SHIFT; in qxl_bo_size() [all …]
|
| H A D | qxl_release.c | 169 struct qxl_bo *bo; in qxl_release_free_list() local 173 bo = to_qxl_bo(entry->tv.bo); in qxl_release_free_list() 174 qxl_bo_unref(&bo); in qxl_release_free_list() 207 struct qxl_bo **bo) in qxl_release_bo_alloc() argument 211 QXL_GEM_DOMAIN_VRAM, NULL, bo); in qxl_release_bo_alloc() 214 int qxl_release_list_add(struct qxl_release *release, struct qxl_bo *bo) in qxl_release_list_add() argument 219 if (entry->tv.bo == &bo->tbo) in qxl_release_list_add() 227 qxl_bo_ref(bo); in qxl_release_list_add() 228 entry->tv.bo = &bo->tbo; in qxl_release_list_add() 234 static int qxl_release_validate_bo(struct qxl_bo *bo) in qxl_release_validate_bo() argument [all …]
|
| /netbsd-src/sys/external/bsd/drm2/dist/drm/radeon/ |
| H A D | radeon_object.c | 53 static void radeon_bo_clear_surface_reg(struct radeon_bo *bo); 60 static void radeon_update_memory_usage(struct radeon_bo *bo, in radeon_update_memory_usage() argument 63 struct radeon_device *rdev = bo->rdev; in radeon_update_memory_usage() 64 u64 size = (u64)bo->tbo.num_pages << PAGE_SHIFT; in radeon_update_memory_usage() 84 struct radeon_bo *bo; in radeon_ttm_bo_destroy() local 86 bo = container_of(tbo, struct radeon_bo, tbo); in radeon_ttm_bo_destroy() 88 radeon_update_memory_usage(bo, bo->tbo.mem.mem_type, -1); in radeon_ttm_bo_destroy() 90 mutex_lock(&bo->rdev->gem.mutex); in radeon_ttm_bo_destroy() 91 list_del_init(&bo->list); in radeon_ttm_bo_destroy() 92 mutex_unlock(&bo->rdev->gem.mutex); in radeon_ttm_bo_destroy() [all …]
|
| H A D | radeon_prime.c | 41 struct radeon_bo *bo = gem_to_radeon_bo(obj); in radeon_gem_prime_get_sg_table() local 42 int npages = bo->tbo.num_pages; in radeon_gem_prime_get_sg_table() 44 return drm_prime_pages_to_sg(bo->tbo.ttm->pages, npages); in radeon_gem_prime_get_sg_table() 49 struct radeon_bo *bo = gem_to_radeon_bo(obj); in radeon_gem_prime_vmap() local 52 ret = ttm_bo_kmap(&bo->tbo, 0, bo->tbo.num_pages, in radeon_gem_prime_vmap() 53 &bo->dma_buf_vmap); in radeon_gem_prime_vmap() 57 return bo->dma_buf_vmap.virtual; in radeon_gem_prime_vmap() 62 struct radeon_bo *bo = gem_to_radeon_bo(obj); in radeon_gem_prime_vunmap() local 64 ttm_bo_kunmap(&bo->dma_buf_vmap); in radeon_gem_prime_vunmap() 73 struct radeon_bo *bo; in radeon_gem_prime_import_sg_table() local [all …]
|
| H A D | radeon_object.h | 66 static inline int radeon_bo_reserve(struct radeon_bo *bo, bool no_intr) in radeon_bo_reserve() argument 70 r = ttm_bo_reserve(&bo->tbo, !no_intr, false, NULL); in radeon_bo_reserve() 73 dev_err(bo->rdev->dev, "%p reserve failed\n", bo); in radeon_bo_reserve() 79 static inline void radeon_bo_unreserve(struct radeon_bo *bo) in radeon_bo_unreserve() argument 81 ttm_bo_unreserve(&bo->tbo); in radeon_bo_unreserve() 93 static inline u64 radeon_bo_gpu_offset(struct radeon_bo *bo) in radeon_bo_gpu_offset() argument 95 return bo->tbo.offset; in radeon_bo_gpu_offset() 98 static inline unsigned long radeon_bo_size(struct radeon_bo *bo) in radeon_bo_size() argument 100 return bo->tbo.num_pages << PAGE_SHIFT; in radeon_bo_size() 103 static inline unsigned radeon_bo_ngpu_pages(struct radeon_bo *bo) in radeon_bo_ngpu_pages() argument [all …]
|
| H A D | radeon_mn.c | 57 struct radeon_bo *bo = container_of(mn, struct radeon_bo, notifier); in radeon_mn_invalidate() local 61 if (!bo->tbo.ttm || bo->tbo.ttm->state != tt_bound) in radeon_mn_invalidate() 67 r = radeon_bo_reserve(bo, true); in radeon_mn_invalidate() 73 r = dma_resv_wait_timeout_rcu(bo->tbo.base.resv, true, false, in radeon_mn_invalidate() 78 radeon_ttm_placement_from_domain(bo, RADEON_GEM_DOMAIN_CPU); in radeon_mn_invalidate() 79 r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in radeon_mn_invalidate() 83 radeon_bo_unreserve(bo); in radeon_mn_invalidate() 100 int radeon_mn_register(struct radeon_bo *bo, unsigned long addr) in radeon_mn_register() argument 104 ret = mmu_interval_notifier_insert(&bo->notifier, current->mm, addr, in radeon_mn_register() 105 radeon_bo_size(bo), &radeon_mn_ops); in radeon_mn_register() [all …]
|
| /netbsd-src/sys/external/bsd/drm2/dist/drm/ttm/ |
| H A D | ttm_bo.c | 86 static void ttm_bo_default_destroy(struct ttm_buffer_object *bo) in ttm_bo_default_destroy() argument 88 kfree(bo); in ttm_bo_default_destroy() 120 static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo, in ttm_bo_mem_space_debug() argument 127 bo, bo->mem.num_pages, bo->mem.size >> 10, in ttm_bo_mem_space_debug() 128 bo->mem.size >> 20); in ttm_bo_mem_space_debug() 136 ttm_mem_type_debug(bo->bdev, &p, mem_type); in ttm_bo_mem_space_debug() 176 struct ttm_buffer_object *bo = in ttm_bo_release_list() local 178 size_t acc_size = bo->acc_size; in ttm_bo_release_list() 180 BUG_ON(kref_read(&bo->list_kref)); in ttm_bo_release_list() 181 BUG_ON(kref_read(&bo->kref)); in ttm_bo_release_list() [all …]
|
| H A D | ttm_bo_vm.c | 50 static vm_fault_t ttm_bo_vm_fault_idle(struct ttm_buffer_object *bo, in ttm_bo_vm_fault_idle() argument 56 if (likely(!bo->moving)) in ttm_bo_vm_fault_idle() 62 if (dma_fence_is_signaled(bo->moving)) in ttm_bo_vm_fault_idle() 74 ttm_bo_get(bo); in ttm_bo_vm_fault_idle() 76 (void) dma_fence_wait(bo->moving, true); in ttm_bo_vm_fault_idle() 77 dma_resv_unlock(bo->base.resv); in ttm_bo_vm_fault_idle() 78 ttm_bo_put(bo); in ttm_bo_vm_fault_idle() 85 err = dma_fence_wait(bo->moving, true); in ttm_bo_vm_fault_idle() 93 dma_fence_put(bo->moving); in ttm_bo_vm_fault_idle() 94 bo->moving = NULL; in ttm_bo_vm_fault_idle() [all …]
|
| H A D | ttm_bo_util.c | 50 struct ttm_buffer_object *bo; member 58 void ttm_bo_free_old_node(struct ttm_buffer_object *bo) in ttm_bo_free_old_node() argument 60 ttm_bo_mem_put(bo, &bo->mem); in ttm_bo_free_old_node() 63 int ttm_bo_move_ttm(struct ttm_buffer_object *bo, in ttm_bo_move_ttm() argument 67 struct ttm_tt *ttm = bo->ttm; in ttm_bo_move_ttm() 68 struct ttm_mem_reg *old_mem = &bo->mem; in ttm_bo_move_ttm() 72 ret = ttm_bo_wait(bo, ctx->interruptible, ctx->no_wait_gpu); in ttm_bo_move_ttm() 81 ttm_bo_free_old_node(bo); in ttm_bo_move_ttm() 126 struct ttm_buffer_object *bo; in ttm_mem_io_evict() local 131 bo = list_first_entry(&man->io_reserve_lru, in ttm_mem_io_evict() [all …]
|
| H A D | ttm_execbuf_util.c | 45 struct ttm_buffer_object *bo = entry->bo; in ttm_eu_backoff_reservation_reverse() local 47 dma_resv_unlock(bo->base.resv); in ttm_eu_backoff_reservation_reverse() 61 struct ttm_buffer_object *bo = entry->bo; in ttm_eu_backoff_reservation() local 63 ttm_bo_move_to_lru_tail(bo, NULL); in ttm_eu_backoff_reservation() 64 dma_resv_unlock(bo->base.resv); in ttm_eu_backoff_reservation() 99 struct ttm_buffer_object *bo = entry->bo; in ttm_eu_reserve_buffers() local 101 ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket); in ttm_eu_reserve_buffers() 114 ret = dma_resv_reserve_shared(bo->base.resv, in ttm_eu_reserve_buffers() 128 ret = dma_resv_lock_slow_interruptible(bo->base.resv, in ttm_eu_reserve_buffers() 131 dma_resv_lock_slow(bo->base.resv, ticket); in ttm_eu_reserve_buffers() [all …]
|
| /netbsd-src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/ |
| H A D | amdgpu_object.c | 69 static void amdgpu_bo_subtract_pin_size(struct amdgpu_bo *bo) in amdgpu_bo_subtract_pin_size() argument 71 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_bo_subtract_pin_size() 73 if (bo->tbo.mem.mem_type == TTM_PL_VRAM) { in amdgpu_bo_subtract_pin_size() 74 atomic64_sub(amdgpu_bo_size(bo), &adev->vram_pin_size); in amdgpu_bo_subtract_pin_size() 75 atomic64_sub(amdgpu_vram_mgr_bo_visible_size(bo), in amdgpu_bo_subtract_pin_size() 77 } else if (bo->tbo.mem.mem_type == TTM_PL_TT) { in amdgpu_bo_subtract_pin_size() 78 atomic64_sub(amdgpu_bo_size(bo), &adev->gart_pin_size); in amdgpu_bo_subtract_pin_size() 85 struct amdgpu_bo *bo = ttm_to_amdgpu_bo(tbo); in amdgpu_bo_destroy() local 87 if (bo->pin_count > 0) in amdgpu_bo_destroy() 88 amdgpu_bo_subtract_pin_size(bo); in amdgpu_bo_destroy() [all …]
|
| H A D | amdgpu_dma_buf.c | 58 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_prime_vmap() local 61 ret = ttm_bo_kmap(&bo->tbo, 0, bo->tbo.num_pages, in amdgpu_gem_prime_vmap() 62 &bo->dma_buf_vmap); in amdgpu_gem_prime_vmap() 66 return bo->dma_buf_vmap.virtual; in amdgpu_gem_prime_vmap() 78 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_prime_vunmap() local 80 ttm_bo_kunmap(&bo->dma_buf_vmap); in amdgpu_gem_prime_vunmap() 107 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_prime_mmap() 108 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_gem_prime_mmap() 109 unsigned asize = amdgpu_bo_size(bo); in amdgpu_gem_prime_mmap() 126 if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm) || in amdgpu_gem_prime_mmap() [all …]
|
| H A D | amdgpu_object.h | 160 static inline int amdgpu_bo_reserve(struct amdgpu_bo *bo, bool no_intr) in amdgpu_bo_reserve() argument 162 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_bo_reserve() 165 r = __ttm_bo_reserve(&bo->tbo, !no_intr, false, NULL); in amdgpu_bo_reserve() 168 dev_err(adev->dev, "%p reserve failed\n", bo); in amdgpu_bo_reserve() 174 static inline void amdgpu_bo_unreserve(struct amdgpu_bo *bo) in amdgpu_bo_unreserve() argument 176 ttm_bo_unreserve(&bo->tbo); in amdgpu_bo_unreserve() 179 static inline unsigned long amdgpu_bo_size(struct amdgpu_bo *bo) in amdgpu_bo_size() argument 181 return bo->tbo.num_pages << PAGE_SHIFT; in amdgpu_bo_size() 184 static inline unsigned amdgpu_bo_ngpu_pages(struct amdgpu_bo *bo) in amdgpu_bo_ngpu_pages() argument 186 return (bo->tbo.num_pages << PAGE_SHIFT) / AMDGPU_GPU_PAGE_SIZE; in amdgpu_bo_ngpu_pages() [all …]
|
| H A D | amdgpu_amdkfd_gpuvm.c | 204 void amdgpu_amdkfd_unreserve_memory_limit(struct amdgpu_bo *bo) in amdgpu_amdkfd_unreserve_memory_limit() argument 206 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_amdkfd_unreserve_memory_limit() 207 u32 domain = bo->preferred_domains; in amdgpu_amdkfd_unreserve_memory_limit() 208 bool sg = (bo->preferred_domains == AMDGPU_GEM_DOMAIN_CPU); in amdgpu_amdkfd_unreserve_memory_limit() 210 if (bo->flags & AMDGPU_AMDKFD_USERPTR_BO) { in amdgpu_amdkfd_unreserve_memory_limit() 215 unreserve_mem_limit(adev, amdgpu_bo_size(bo), domain, sg); in amdgpu_amdkfd_unreserve_memory_limit() 228 static int amdgpu_amdkfd_remove_eviction_fence(struct amdgpu_bo *bo, in amdgpu_amdkfd_remove_eviction_fence() argument 231 struct dma_resv *resv = bo->tbo.base.resv; in amdgpu_amdkfd_remove_eviction_fence() 284 static int amdgpu_amdkfd_bo_validate(struct amdgpu_bo *bo, uint32_t domain, in amdgpu_amdkfd_bo_validate() argument 290 if (WARN(amdgpu_ttm_tt_get_usermm(bo->tbo.ttm), in amdgpu_amdkfd_bo_validate() [all …]
|
| H A D | amdgpu_mn.c | 72 struct amdgpu_bo *bo = container_of(mni, struct amdgpu_bo, notifier); in amdgpu_mn_invalidate_gfx() local 73 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_mn_invalidate_gfx() 83 r = dma_resv_wait_timeout_rcu(bo->tbo.base.resv, true, false, in amdgpu_mn_invalidate_gfx() 109 struct amdgpu_bo *bo = container_of(mni, struct amdgpu_bo, notifier); in amdgpu_mn_invalidate_hsa() local 110 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_mn_invalidate_hsa() 119 amdgpu_amdkfd_evict_userptr(bo->kfd_bo, bo->notifier.mm); in amdgpu_mn_invalidate_hsa() 138 int amdgpu_mn_register(struct amdgpu_bo *bo, unsigned long addr) in amdgpu_mn_register() argument 140 if (bo->kfd_bo) in amdgpu_mn_register() 141 return mmu_interval_notifier_insert(&bo->notifier, current->mm, in amdgpu_mn_register() 142 addr, amdgpu_bo_size(bo), in amdgpu_mn_register() [all …]
|
| H A D | amdgpu_vm.c | 236 struct amdgpu_bo *bo = vm_bo->bo; in amdgpu_vm_bo_evicted() local 239 if (bo->tbo.type == ttm_bo_type_kernel) in amdgpu_vm_bo_evicted() 326 struct amdgpu_bo *bo) in amdgpu_vm_bo_base_init() argument 329 base->bo = bo; in amdgpu_vm_bo_base_init() 333 if (!bo) in amdgpu_vm_bo_base_init() 335 base->next = bo->vm_bo; in amdgpu_vm_bo_base_init() 336 bo->vm_bo = base; in amdgpu_vm_bo_base_init() 338 if (bo->tbo.base.resv != vm->root.base.bo->tbo.base.resv) in amdgpu_vm_bo_base_init() 342 if (bo->tbo.type == ttm_bo_type_kernel && bo->parent) in amdgpu_vm_bo_base_init() 347 if (bo->preferred_domains & in amdgpu_vm_bo_base_init() [all …]
|
| H A D | amdgpu_bo_list.c | 61 struct amdgpu_bo *bo = ttm_to_amdgpu_bo(e->tv.bo); in amdgpu_bo_list_free() local 63 amdgpu_bo_unref(&bo); in amdgpu_bo_list_free() 102 struct amdgpu_bo *bo; in amdgpu_bo_list_create() local 115 bo = amdgpu_bo_ref(gem_to_amdgpu_bo(gobj)); in amdgpu_bo_list_create() 118 usermm = amdgpu_ttm_tt_get_usermm(bo->tbo.ttm); in amdgpu_bo_list_create() 121 amdgpu_bo_unref(&bo); in amdgpu_bo_list_create() 126 amdgpu_bo_unref(&bo); in amdgpu_bo_list_create() 138 entry->tv.bo = &bo->tbo; in amdgpu_bo_list_create() 140 if (bo->preferred_domains == AMDGPU_GEM_DOMAIN_GDS) in amdgpu_bo_list_create() 141 list->gds_obj = bo; in amdgpu_bo_list_create() [all …]
|
| H A D | amdgpu_ttm.c | 70 static int amdgpu_map_buffer(struct ttm_buffer_object *bo, 151 static void amdgpu_evict_flags(struct ttm_buffer_object *bo, in amdgpu_evict_flags() argument 154 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->bdev); in amdgpu_evict_flags() 163 if (bo->type == ttm_bo_type_sg) { in amdgpu_evict_flags() 170 if (!amdgpu_bo_is_amdgpu_bo(bo)) { in amdgpu_evict_flags() 178 abo = ttm_to_amdgpu_bo(bo); in amdgpu_evict_flags() 179 switch (bo->mem.mem_type) { in amdgpu_evict_flags() 228 static int amdgpu_verify_access(struct ttm_buffer_object *bo, struct file *filp) in amdgpu_verify_access() argument 230 struct amdgpu_bo *abo = ttm_to_amdgpu_bo(bo); in amdgpu_verify_access() 239 if (amdgpu_ttm_tt_get_usermm(bo->ttm)) in amdgpu_verify_access() [all …]
|
| /netbsd-src/sys/external/bsd/drm2/ttm/ |
| H A D | ttm_bo_vm.c | 83 struct ttm_buffer_object *const bo = container_of(uobj, in ttm_bo_uvm_reference() local 86 (void)ttm_bo_get(bo); in ttm_bo_uvm_reference() 92 struct ttm_buffer_object *bo = container_of(uobj, in ttm_bo_uvm_detach() local 95 ttm_bo_put(bo); in ttm_bo_uvm_detach() 99 ttm_bo_vm_fault_idle(struct ttm_buffer_object *bo, struct uvm_faultinfo *vmf) in ttm_bo_vm_fault_idle() argument 103 if (__predict_true(!bo->moving)) in ttm_bo_vm_fault_idle() 109 if (dma_fence_is_signaled(bo->moving)) in ttm_bo_vm_fault_idle() 119 ttm_bo_get(bo); in ttm_bo_vm_fault_idle() 121 (void) dma_fence_wait(bo->moving, true); in ttm_bo_vm_fault_idle() 122 dma_resv_unlock(bo->base.resv); in ttm_bo_vm_fault_idle() [all …]
|
| /netbsd-src/sys/external/bsd/drm2/dist/include/drm/ttm/ |
| H A D | ttm_bo_driver.h | 109 struct ttm_buffer_object *bo, 237 struct ttm_tt *(*ttm_tt_create)(struct ttm_buffer_object *bo, 295 bool (*eviction_valuable)(struct ttm_buffer_object *bo, 307 void (*evict_flags)(struct ttm_buffer_object *bo, 321 int (*move)(struct ttm_buffer_object *bo, bool evict, 337 int (*verify_access)(struct ttm_buffer_object *bo, 347 void (*move_notify)(struct ttm_buffer_object *bo, 352 int (*fault_reserve_notify)(struct ttm_buffer_object *bo); 357 void (*swap_notify)(struct ttm_buffer_object *bo); 380 unsigned long (*io_mem_pfn)(struct ttm_buffer_object *bo, [all …]
|
| /netbsd-src/sys/external/bsd/drm2/dist/drm/vmwgfx/ |
| H A D | vmwgfx_bo.c | 61 vmw_buffer_object(struct ttm_buffer_object *bo) in vmw_buffer_object() argument 63 return container_of(bo, struct vmw_buffer_object, base); in vmw_buffer_object() 76 vmw_user_buffer_object(struct ttm_buffer_object *bo) in vmw_user_buffer_object() argument 78 struct vmw_buffer_object *vmw_bo = vmw_buffer_object(bo); in vmw_user_buffer_object() 100 struct ttm_buffer_object *bo = &buf->base; in vmw_bo_pin_in_placement() local 110 ret = ttm_bo_reserve(bo, interruptible, false, NULL); in vmw_bo_pin_in_placement() 115 ret = ttm_bo_mem_compat(placement, &bo->mem, in vmw_bo_pin_in_placement() 118 ret = ttm_bo_validate(bo, placement, &ctx); in vmw_bo_pin_in_placement() 123 ttm_bo_unreserve(bo); in vmw_bo_pin_in_placement() 149 struct ttm_buffer_object *bo = &buf->base; in vmw_bo_pin_in_vram_or_gmr() local [all …]
|
| /netbsd-src/sys/external/bsd/drm2/dist/drm/virtio/ |
| H A D | virtgpu_object.c | 71 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtio_gpu_free_object() local 72 struct virtio_gpu_device *vgdev = bo->base.base.dev->dev_private; in virtio_gpu_free_object() 74 if (bo->pages) in virtio_gpu_free_object() 75 virtio_gpu_object_detach(vgdev, bo); in virtio_gpu_free_object() 76 if (bo->created) in virtio_gpu_free_object() 77 virtio_gpu_cmd_unref_resource(vgdev, bo->hw_res_handle); in virtio_gpu_free_object() 78 virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle); in virtio_gpu_free_object() 100 struct virtio_gpu_object *bo; in virtio_gpu_create_object() local 102 bo = kzalloc(sizeof(*bo), GFP_KERNEL); in virtio_gpu_create_object() 103 if (!bo) in virtio_gpu_create_object() [all …]
|
| /netbsd-src/sys/external/bsd/drm2/dist/drm/nouveau/ |
| H A D | nouveau_bo.c | 138 nouveau_bo_del_ttm(struct ttm_buffer_object *bo) in nouveau_bo_del_ttm() argument 140 struct nouveau_drm *drm = nouveau_bdev(bo->bdev); in nouveau_bo_del_ttm() 142 struct nouveau_bo *nvbo = nouveau_bo(bo); in nouveau_bo_del_ttm() 151 if (bo->base.dev) in nouveau_bo_del_ttm() 152 drm_gem_object_release(&bo->base); in nouveau_bo_del_ttm() 169 struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); in nouveau_bo_fixup_align() 220 nvbo->bo.bdev = &drm->ttm.bdev; in nouveau_bo_alloc() 308 acc_size = ttm_bo_dma_acc_size(nvbo->bo.bdev, size, sizeof(*nvbo)); in nouveau_bo_init() 310 nvbo->bo.mem.num_pages = size >> PAGE_SHIFT; in nouveau_bo_init() 313 ret = ttm_bo_init(nvbo->bo.bdev, &nvbo->bo, size, type, in nouveau_bo_init() [all …]
|
| H A D | nouveau_gem.c | 52 struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); in nouveau_gem_object_del() 61 drm_prime_gem_destroy(gem, nvbo->bo.sg); in nouveau_gem_object_del() 63 ttm_bo_put(&nvbo->bo); in nouveau_gem_object_del() 74 struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); in nouveau_gem_object_open() 83 ret = ttm_bo_reserve(&nvbo->bo, false, false, NULL); in nouveau_gem_object_open() 95 ttm_bo_unreserve(&nvbo->bo); in nouveau_gem_object_open() 149 struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); in nouveau_gem_object_close() 158 ret = ttm_bo_reserve(&nvbo->bo, false, false, NULL); in nouveau_gem_object_close() 173 ttm_bo_unreserve(&nvbo->bo); in nouveau_gem_object_close() 203 ret = drm_gem_object_init(drm->dev, &nvbo->bo.base, size); in nouveau_gem_new() [all …]
|