Lines Matching refs:bo

56 vmw_buffer_object(struct ttm_buffer_object *bo)  in vmw_buffer_object()  argument
58 return container_of(bo, struct vmw_buffer_object, base); in vmw_buffer_object()
71 vmw_user_buffer_object(struct ttm_buffer_object *bo) in vmw_user_buffer_object() argument
73 struct vmw_buffer_object *vmw_bo = vmw_buffer_object(bo); in vmw_user_buffer_object()
95 struct ttm_buffer_object *bo = &buf->base; in vmw_bo_pin_in_placement() local
100 ret = ttm_bo_reserve(bo, interruptible, false, NULL); in vmw_bo_pin_in_placement()
105 ret = ttm_resource_compat(bo->resource, placement) in vmw_bo_pin_in_placement()
108 ret = ttm_bo_validate(bo, placement, &ctx); in vmw_bo_pin_in_placement()
113 ttm_bo_unreserve(bo); in vmw_bo_pin_in_placement()
136 struct ttm_buffer_object *bo = &buf->base; in vmw_bo_pin_in_vram_or_gmr() local
141 ret = ttm_bo_reserve(bo, interruptible, false, NULL); in vmw_bo_pin_in_vram_or_gmr()
146 ret = ttm_resource_compat(bo->resource, &vmw_vram_gmr_placement) in vmw_bo_pin_in_vram_or_gmr()
151 ret = ttm_bo_validate(bo, &vmw_vram_gmr_placement, &ctx); in vmw_bo_pin_in_vram_or_gmr()
155 ret = ttm_bo_validate(bo, &vmw_vram_placement, &ctx); in vmw_bo_pin_in_vram_or_gmr()
161 ttm_bo_unreserve(bo); in vmw_bo_pin_in_vram_or_gmr()
205 struct ttm_buffer_object *bo = &buf->base; in vmw_bo_pin_in_start_of_vram() local
211 place.lpfn = bo->resource->num_pages; in vmw_bo_pin_in_start_of_vram()
218 ret = ttm_bo_reserve(bo, interruptible, false, NULL); in vmw_bo_pin_in_start_of_vram()
227 if (bo->resource->mem_type == TTM_PL_VRAM && in vmw_bo_pin_in_start_of_vram()
228 bo->resource->start < bo->resource->num_pages && in vmw_bo_pin_in_start_of_vram()
229 bo->resource->start > 0 && in vmw_bo_pin_in_start_of_vram()
232 (void) ttm_bo_validate(bo, &vmw_sys_placement, &ctx); in vmw_bo_pin_in_start_of_vram()
236 ret = ttm_resource_compat(bo->resource, &placement) in vmw_bo_pin_in_start_of_vram()
239 ret = ttm_bo_validate(bo, &placement, &ctx); in vmw_bo_pin_in_start_of_vram()
242 WARN_ON(ret == 0 && bo->resource->start != 0); in vmw_bo_pin_in_start_of_vram()
246 ttm_bo_unreserve(bo); in vmw_bo_pin_in_start_of_vram()
268 struct ttm_buffer_object *bo = &buf->base; in vmw_bo_unpin() local
271 ret = ttm_bo_reserve(bo, interruptible, false, NULL); in vmw_bo_unpin()
277 ttm_bo_unreserve(bo); in vmw_bo_unpin()
290 void vmw_bo_get_guest_ptr(const struct ttm_buffer_object *bo, in vmw_bo_get_guest_ptr() argument
293 if (bo->resource->mem_type == TTM_PL_VRAM) { in vmw_bo_get_guest_ptr()
295 ptr->offset = bo->resource->start << PAGE_SHIFT; in vmw_bo_get_guest_ptr()
297 ptr->gmrId = bo->resource->start; in vmw_bo_get_guest_ptr()
315 struct ttm_buffer_object *bo = &vbo->base; in vmw_bo_pin_reserved() local
316 uint32_t old_mem_type = bo->resource->mem_type; in vmw_bo_pin_reserved()
319 dma_resv_assert_held(bo->base.resv); in vmw_bo_pin_reserved()
321 if (pin == !!bo->pin_count) in vmw_bo_pin_reserved()
326 pl.mem_type = bo->resource->mem_type; in vmw_bo_pin_reserved()
327 pl.flags = bo->resource->placement; in vmw_bo_pin_reserved()
333 ret = ttm_bo_validate(bo, &placement, &ctx); in vmw_bo_pin_reserved()
335 BUG_ON(ret != 0 || bo->resource->mem_type != old_mem_type); in vmw_bo_pin_reserved()
338 ttm_bo_pin(bo); in vmw_bo_pin_reserved()
340 ttm_bo_unpin(bo); in vmw_bo_pin_reserved()
360 struct ttm_buffer_object *bo = &vbo->base; in vmw_bo_map_and_cache() local
369 ret = ttm_bo_kmap(bo, 0, bo->resource->num_pages, &vbo->map); in vmw_bo_map_and_cache()
387 if (vbo->map.bo == NULL) in vmw_bo_unmap()
432 void vmw_bo_bo_free(struct ttm_buffer_object *bo) in vmw_bo_bo_free() argument
434 struct vmw_buffer_object *vmw_bo = vmw_buffer_object(bo); in vmw_bo_bo_free()
439 dma_resv_fini(&bo->base._resv); in vmw_bo_bo_free()
449 static void vmw_user_bo_destroy(struct ttm_buffer_object *bo) in vmw_user_bo_destroy() argument
451 struct vmw_user_buffer_object *vmw_user_bo = vmw_user_buffer_object(bo); in vmw_user_bo_destroy()
475 struct ttm_buffer_object *bo; in vmw_bo_create_kernel() local
479 bo = kzalloc(sizeof(*bo), GFP_KERNEL); in vmw_bo_create_kernel()
480 if (unlikely(!bo)) in vmw_bo_create_kernel()
483 acc_size = ttm_round_pot(sizeof(*bo)); in vmw_bo_create_kernel()
492 bo->base.size = size; in vmw_bo_create_kernel()
493 dma_resv_init(&bo->base._resv); in vmw_bo_create_kernel()
494 drm_vma_node_reset(&bo->base.vma_node); in vmw_bo_create_kernel()
496 ret = ttm_bo_init_reserved(&dev_priv->bdev, bo, size, in vmw_bo_create_kernel()
502 ttm_bo_pin(bo); in vmw_bo_create_kernel()
503 ttm_bo_unreserve(bo); in vmw_bo_create_kernel()
504 *p_bo = bo; in vmw_bo_create_kernel()
512 kfree(bo); in vmw_bo_create_kernel()
534 void (*bo_free)(struct ttm_buffer_object *bo)) in vmw_bo_init() argument
696 int vmw_user_bo_verify_access(struct ttm_buffer_object *bo, in vmw_user_bo_verify_access() argument
701 if (unlikely(bo->destroy != vmw_user_bo_destroy)) in vmw_user_bo_verify_access()
704 vmw_user_bo = vmw_user_buffer_object(bo); in vmw_user_bo_verify_access()
735 struct ttm_buffer_object *bo = &user_bo->vbo.base; in vmw_user_bo_synccpu_grab() local
742 lret = dma_resv_wait_timeout(bo->base.resv, true, true, in vmw_user_bo_synccpu_grab()
752 ret = ttm_bo_reserve(bo, true, nonblock, NULL); in vmw_user_bo_synccpu_grab()
756 ret = ttm_bo_wait(bo, true, nonblock); in vmw_user_bo_synccpu_grab()
760 ttm_bo_unreserve(bo); in vmw_user_bo_synccpu_grab()
1052 void vmw_bo_fence_single(struct ttm_buffer_object *bo, in vmw_bo_fence_single() argument
1055 struct ttm_device *bdev = bo->bdev; in vmw_bo_fence_single()
1062 dma_resv_add_excl_fence(bo->base.resv, &fence->base); in vmw_bo_fence_single()
1065 dma_resv_add_excl_fence(bo->base.resv, &fence->base); in vmw_bo_fence_single()
1157 void vmw_bo_swap_notify(struct ttm_buffer_object *bo) in vmw_bo_swap_notify() argument
1160 if (bo->destroy != vmw_bo_bo_free && in vmw_bo_swap_notify()
1161 bo->destroy != vmw_user_bo_destroy) in vmw_bo_swap_notify()
1165 vmw_bo_unmap(vmw_buffer_object(bo)); in vmw_bo_swap_notify()
1179 void vmw_bo_move_notify(struct ttm_buffer_object *bo, in vmw_bo_move_notify() argument
1185 if (bo->destroy != vmw_bo_bo_free && in vmw_bo_move_notify()
1186 bo->destroy != vmw_user_bo_destroy) in vmw_bo_move_notify()
1189 vbo = container_of(bo, struct vmw_buffer_object, base); in vmw_bo_move_notify()
1196 if (mem->mem_type == TTM_PL_VRAM || bo->resource->mem_type == TTM_PL_VRAM) in vmw_bo_move_notify()
1204 if (mem->mem_type != VMW_PL_MOB && bo->resource->mem_type == VMW_PL_MOB) in vmw_bo_move_notify()