Lines Matching refs:bo
39 struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); in nouveau_gem_object_del()
40 struct ttm_buffer_object *bo = &nvbo->bo; in nouveau_gem_object_del() local
49 drm_prime_gem_destroy(gem, nvbo->bo.sg); in nouveau_gem_object_del()
55 ttm_bo_unref(&bo); in nouveau_gem_object_del()
66 struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); in nouveau_gem_object_open()
74 ret = ttm_bo_reserve(&nvbo->bo, false, false, false, NULL); in nouveau_gem_object_open()
103 ttm_bo_unreserve(&nvbo->bo); in nouveau_gem_object_open()
119 const bool mapped = nvbo->bo.mem.mem_type != TTM_PL_SYSTEM; in nouveau_gem_object_unmap()
120 struct reservation_object *resv = nvbo->bo.resv; in nouveau_gem_object_unmap()
129 ttm_bo_wait(&nvbo->bo, true, false, false); in nouveau_gem_object_unmap()
134 fence = reservation_object_get_excl(nvbo->bo.resv); in nouveau_gem_object_unmap()
151 struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); in nouveau_gem_object_close()
159 ret = ttm_bo_reserve(&nvbo->bo, false, false, false, NULL); in nouveau_gem_object_close()
174 ttm_bo_unreserve(&nvbo->bo); in nouveau_gem_object_close()
214 ret = drm_gem_object_init(dev, &nvbo->gem, nvbo->bo.mem.size); in nouveau_gem_new()
220 nvbo->bo.persistent_swap_storage = nvbo->gem.filp; in nouveau_gem_new()
234 else if (nvbo->bo.mem.mem_type == TTM_PL_TT) in nouveau_gem_info()
238 rep->offset = nvbo->bo.offset; in nouveau_gem_info()
247 rep->size = nvbo->bo.mem.num_pages << PAGE_SHIFT; in nouveau_gem_info()
248 rep->map_handle = drm_vma_node_offset_addr(&nvbo->bo.vma_node); in nouveau_gem_info()
293 struct ttm_buffer_object *bo = &nvbo->bo; in nouveau_gem_set_domain() local
308 bo->mem.mem_type == TTM_PL_VRAM) in nouveau_gem_set_domain()
312 bo->mem.mem_type == TTM_PL_TT) in nouveau_gem_set_domain()
352 ttm_bo_unreserve_ticket(&nvbo->bo, &op->ticket); in validate_fini_no_ticket()
412 ret = ttm_bo_reserve(&nvbo->bo, true, false, true, &op->ticket); in validate_init()
419 ret = ttm_bo_reserve_slowpath(&nvbo->bo, true, in validate_init()
501 if (nvbo->bo.offset == b->presumed.offset && in validate_list()
502 ((nvbo->bo.mem.mem_type == TTM_PL_VRAM && in validate_list()
504 (nvbo->bo.mem.mem_type == TTM_PL_TT && in validate_list()
508 if (nvbo->bo.mem.mem_type == TTM_PL_TT) in validate_list()
512 b->presumed.offset = nvbo->bo.offset; in validate_list()
589 struct drm_nouveau_gem_pushbuf_bo *bo) in nouveau_gem_pushbuf_reloc_apply() argument
611 b = &bo[r->bo_index]; in nouveau_gem_pushbuf_reloc_apply()
620 nvbo = (void *)(unsigned long)bo[r->reloc_bo_index].user_priv; in nouveau_gem_pushbuf_reloc_apply()
623 nvbo->bo.mem.num_pages << PAGE_SHIFT)) { in nouveau_gem_pushbuf_reloc_apply()
630 ret = ttm_bo_kmap(&nvbo->bo, 0, nvbo->bo.mem.num_pages, in nouveau_gem_pushbuf_reloc_apply()
654 ret = ttm_bo_wait(&nvbo->bo, true, false, false); in nouveau_gem_pushbuf_reloc_apply()
677 struct drm_nouveau_gem_pushbuf_bo *bo; in nouveau_gem_ioctl_pushbuf() local
723 bo = u_memcpya(req->buffers, req->nr_buffers, sizeof(*bo)); in nouveau_gem_ioctl_pushbuf()
724 if (IS_ERR(bo)) { in nouveau_gem_ioctl_pushbuf()
726 return nouveau_abi16_put(abi16, PTR_ERR(bo)); in nouveau_gem_ioctl_pushbuf()
739 ret = nouveau_gem_pushbuf_validate(chan, file_priv, bo, req->buffers, in nouveau_gem_ioctl_pushbuf()
749 ret = nouveau_gem_pushbuf_reloc_apply(cli, req, bo); in nouveau_gem_ioctl_pushbuf()
765 bo[push[i].bo_index].user_priv; in nouveau_gem_ioctl_pushbuf()
780 bo[push[i].bo_index].user_priv; in nouveau_gem_ioctl_pushbuf()
782 OUT_RING(chan, (nvbo->bo.offset + push[i].offset) | 2); in nouveau_gem_ioctl_pushbuf()
794 bo[push[i].bo_index].user_priv; in nouveau_gem_ioctl_pushbuf()
801 ret = ttm_bo_kmap(&nvbo->bo, 0, in nouveau_gem_ioctl_pushbuf()
802 nvbo->bo.mem. in nouveau_gem_ioctl_pushbuf()
817 (nvbo->bo.offset + push[i].offset)); in nouveau_gem_ioctl_pushbuf()
832 validate_fini(&op, fence, bo); in nouveau_gem_ioctl_pushbuf()
836 u_free(bo); in nouveau_gem_ioctl_pushbuf()
873 ret = reservation_object_test_signaled_rcu(nvbo->bo.resv, write) ? 0 : -EBUSY; in nouveau_gem_ioctl_cpu_prep()
877 lret = reservation_object_wait_timeout_rcu(nvbo->bo.resv, write, true, 30 * HZ); in nouveau_gem_ioctl_cpu_prep()