Lines Matching refs:vbo

35 static void vmw_bo_release(struct vmw_bo *vbo)
39 WARN_ON(kref_read(&vbo->tbo.base.refcount) != 0);
40 vmw_bo_unmap(vbo);
42 xa_destroy(&vbo->detached_resources);
43 WARN_ON(vbo->is_dumb && !vbo->dumb_surface);
44 if (vbo->is_dumb && vbo->dumb_surface) {
45 res = &vbo->dumb_surface->res;
46 WARN_ON(vbo != res->guest_memory_bo);
63 vmw_surface_unreference(&vbo->dumb_surface);
65 drm_gem_object_release(&vbo->tbo.base);
75 struct vmw_bo *vbo = to_vmw_bo(&bo->base);
77 WARN_ON(!RB_EMPTY_ROOT(&vbo->res_tree));
78 vmw_bo_release(vbo);
79 WARN_ON(vbo->dirty);
80 kfree(vbo);
299 * @vbo: The buffer object. Must be reserved.
303 void vmw_bo_pin_reserved(struct vmw_bo *vbo, bool pin)
308 struct ttm_buffer_object *bo = &vbo->tbo;
339 * @vbo: The buffer object to map
351 void *vmw_bo_map_and_cache(struct vmw_bo *vbo)
353 return vmw_bo_map_and_cache_size(vbo, vbo->tbo.base.size);
356 void *vmw_bo_map_and_cache_size(struct vmw_bo *vbo, size_t size)
358 struct ttm_buffer_object *bo = &vbo->tbo;
363 atomic_inc(&vbo->map_count);
365 virtual = ttm_kmap_obj_virtual(&vbo->map, &not_used);
369 ret = ttm_bo_kmap(bo, 0, PFN_UP(size), &vbo->map);
374 return ttm_kmap_obj_virtual(&vbo->map, &not_used);
381 * @vbo: The buffer object whose map we are tearing down.
386 void vmw_bo_unmap(struct vmw_bo *vbo)
390 if (vbo->map.bo == NULL)
393 map_count = atomic_dec_return(&vbo->map_count);
396 ttm_bo_kunmap(&vbo->map);
397 vbo->map.bo = NULL;
570 struct vmw_bo *vbo;
583 ret = vmw_user_bo_lookup(file_priv, arg->handle, &vbo);
587 ret = vmw_user_bo_synccpu_grab(vbo, arg->flags);
588 vmw_user_bo_unref(&vbo);
724 struct vmw_bo *vbo = to_vmw_bo(&bo->base);
732 vmw_bo_unmap(vbo);
740 vmw_resource_unbind_list(vbo);
853 int vmw_bo_add_detached_resource(struct vmw_bo *vbo, struct vmw_resource *res)
855 return xa_err(xa_store(&vbo->detached_resources, (unsigned long)res, res, GFP_KERNEL));
858 void vmw_bo_del_detached_resource(struct vmw_bo *vbo, struct vmw_resource *res)
860 xa_erase(&vbo->detached_resources, (unsigned long)res);
863 struct vmw_surface *vmw_bo_surface(struct vmw_bo *vbo)
868 struct rb_node *rb_itr = vbo->res_tree.rb_node;
870 if (vbo->is_dumb && vbo->dumb_surface) {
871 res = &vbo->dumb_surface->res;
875 xa_for_each(&vbo->detached_resources, index, res) {
880 for (rb_itr = rb_first(&vbo->res_tree); rb_itr;
893 s32 vmw_bo_mobid(struct vmw_bo *vbo)
895 WARN_ON(vbo->tbo.resource->mem_type != VMW_PL_MOB);
896 return (s32)vbo->tbo.resource->start;