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()
101 ttm_bo_unreserve(&nvbo->bo); in nouveau_gem_object_open()
117 const bool mapped = nvbo->bo.mem.mem_type != TTM_PL_SYSTEM; in nouveau_gem_object_unmap()
118 struct reservation_object *resv = nvbo->bo.resv; in nouveau_gem_object_unmap()
127 ttm_bo_wait(&nvbo->bo, true, false, false); in nouveau_gem_object_unmap()
132 fence = reservation_object_get_excl(nvbo->bo.resv); in nouveau_gem_object_unmap()
149 struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); in nouveau_gem_object_close()
157 ret = ttm_bo_reserve(&nvbo->bo, false, false, false, NULL); in nouveau_gem_object_close()
172 ttm_bo_unreserve(&nvbo->bo); in nouveau_gem_object_close()
212 ret = drm_gem_object_init(dev, &nvbo->gem, nvbo->bo.mem.size); in nouveau_gem_new()
218 nvbo->bo.persistent_swap_storage = nvbo->gem.filp; in nouveau_gem_new()
232 else if (nvbo->bo.mem.mem_type == TTM_PL_TT) in nouveau_gem_info()
236 rep->offset = nvbo->bo.offset; in nouveau_gem_info()
245 rep->size = nvbo->bo.mem.num_pages << PAGE_SHIFT; in nouveau_gem_info()
246 rep->map_handle = drm_vma_node_offset_addr(&nvbo->bo.vma_node); in nouveau_gem_info()
291 struct ttm_buffer_object *bo = &nvbo->bo; in nouveau_gem_set_domain() local
306 bo->mem.mem_type == TTM_PL_VRAM) in nouveau_gem_set_domain()
310 bo->mem.mem_type == TTM_PL_TT) in nouveau_gem_set_domain()
350 ttm_bo_unreserve_ticket(&nvbo->bo, &op->ticket); in validate_fini_no_ticket()
410 ret = ttm_bo_reserve(&nvbo->bo, true, false, true, &op->ticket); in validate_init()
417 ret = ttm_bo_reserve_slowpath(&nvbo->bo, true, in validate_init()
499 if (nvbo->bo.offset == b->presumed.offset && in validate_list()
500 ((nvbo->bo.mem.mem_type == TTM_PL_VRAM && in validate_list()
502 (nvbo->bo.mem.mem_type == TTM_PL_TT && in validate_list()
506 if (nvbo->bo.mem.mem_type == TTM_PL_TT) in validate_list()
510 b->presumed.offset = nvbo->bo.offset; in validate_list()
590 struct drm_nouveau_gem_pushbuf_bo *bo) in nouveau_gem_pushbuf_reloc_apply() argument
612 b = &bo[r->bo_index]; in nouveau_gem_pushbuf_reloc_apply()
621 nvbo = (void *)(unsigned long)bo[r->reloc_bo_index].user_priv; in nouveau_gem_pushbuf_reloc_apply()
624 nvbo->bo.mem.num_pages << PAGE_SHIFT)) { in nouveau_gem_pushbuf_reloc_apply()
631 ret = ttm_bo_kmap(&nvbo->bo, 0, nvbo->bo.mem.num_pages, in nouveau_gem_pushbuf_reloc_apply()
655 ret = ttm_bo_wait(&nvbo->bo, true, false, false); in nouveau_gem_pushbuf_reloc_apply()
678 struct drm_nouveau_gem_pushbuf_bo *bo; in nouveau_gem_ioctl_pushbuf() local
724 bo = u_memcpya(req->buffers, req->nr_buffers, sizeof(*bo)); in nouveau_gem_ioctl_pushbuf()
725 if (IS_ERR(bo)) { in nouveau_gem_ioctl_pushbuf()
727 return nouveau_abi16_put(abi16, PTR_ERR(bo)); in nouveau_gem_ioctl_pushbuf()
740 ret = nouveau_gem_pushbuf_validate(chan, file_priv, bo, req->buffers, in nouveau_gem_ioctl_pushbuf()
750 ret = nouveau_gem_pushbuf_reloc_apply(cli, req, bo); in nouveau_gem_ioctl_pushbuf()
766 bo[push[i].bo_index].user_priv; in nouveau_gem_ioctl_pushbuf()
781 bo[push[i].bo_index].user_priv; in nouveau_gem_ioctl_pushbuf()
783 OUT_RING(chan, (nvbo->bo.offset + push[i].offset) | 2); in nouveau_gem_ioctl_pushbuf()
795 bo[push[i].bo_index].user_priv; in nouveau_gem_ioctl_pushbuf()
802 ret = ttm_bo_kmap(&nvbo->bo, 0, in nouveau_gem_ioctl_pushbuf()
803 nvbo->bo.mem. in nouveau_gem_ioctl_pushbuf()
818 (nvbo->bo.offset + push[i].offset)); in nouveau_gem_ioctl_pushbuf()
833 validate_fini(&op, fence, bo); in nouveau_gem_ioctl_pushbuf()
837 u_free(bo); in nouveau_gem_ioctl_pushbuf()
874 ret = reservation_object_test_signaled_rcu(nvbo->bo.resv, write) ? 0 : -EBUSY; in nouveau_gem_ioctl_cpu_prep()
878 lret = reservation_object_wait_timeout_rcu(nvbo->bo.resv, write, true, 30 * HZ); in nouveau_gem_ioctl_cpu_prep()