Lines Matching refs:bo
66 void virtio_gpu_cleanup_object(struct virtio_gpu_object *bo) in virtio_gpu_cleanup_object() argument
68 struct virtio_gpu_device *vgdev = bo->base.base.dev->dev_private; in virtio_gpu_cleanup_object()
70 virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle); in virtio_gpu_cleanup_object()
71 if (virtio_gpu_is_shmem(bo)) { in virtio_gpu_cleanup_object()
72 drm_gem_shmem_free(&bo->base); in virtio_gpu_cleanup_object()
73 } else if (virtio_gpu_is_vram(bo)) { in virtio_gpu_cleanup_object()
74 struct virtio_gpu_object_vram *vram = to_virtio_gpu_vram(bo); in virtio_gpu_cleanup_object()
86 drm_gem_object_release(&bo->base.base); in virtio_gpu_cleanup_object()
87 kfree(bo); in virtio_gpu_cleanup_object()
93 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtio_gpu_free_object() local
94 struct virtio_gpu_device *vgdev = bo->base.base.dev->dev_private; in virtio_gpu_free_object()
96 if (bo->created) { in virtio_gpu_free_object()
97 virtio_gpu_cmd_unref_resource(vgdev, bo); in virtio_gpu_free_object()
102 virtio_gpu_cleanup_object(bo); in virtio_gpu_free_object()
105 int virtio_gpu_detach_object_fenced(struct virtio_gpu_object *bo) in virtio_gpu_detach_object_fenced() argument
107 struct virtio_gpu_device *vgdev = bo->base.base.dev->dev_private; in virtio_gpu_detach_object_fenced()
110 if (!bo->attached) in virtio_gpu_detach_object_fenced()
117 virtio_gpu_object_detach(vgdev, bo, fence); in virtio_gpu_detach_object_fenced()
141 bool virtio_gpu_is_shmem(struct virtio_gpu_object *bo) in virtio_gpu_is_shmem() argument
143 return bo->base.base.funcs == &virtio_gpu_shmem_funcs; in virtio_gpu_is_shmem()
162 struct virtio_gpu_object *bo, in virtio_gpu_object_shmem_init() argument
171 pages = drm_gem_shmem_get_pages_sgt(&bo->base); in virtio_gpu_object_shmem_init()
210 struct virtio_gpu_object *bo; in virtio_gpu_object_create() local
221 bo = gem_to_virtio_gpu_obj(&shmem_obj->base); in virtio_gpu_object_create()
223 ret = virtio_gpu_resource_id_get(vgdev, &bo->hw_res_handle); in virtio_gpu_object_create()
227 bo->dumb = params->dumb; in virtio_gpu_object_create()
229 ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents); in virtio_gpu_object_create()
238 virtio_gpu_array_add_obj(objs, &bo->base.base); in virtio_gpu_object_create()
247 bo->guest_blob = true; in virtio_gpu_object_create()
249 virtio_gpu_cmd_resource_create_blob(vgdev, bo, params, in virtio_gpu_object_create()
252 virtio_gpu_cmd_resource_create_3d(vgdev, bo, params, in virtio_gpu_object_create()
254 virtio_gpu_object_attach(vgdev, bo, ents, nents); in virtio_gpu_object_create()
256 virtio_gpu_cmd_create_resource(vgdev, bo, params, in virtio_gpu_object_create()
258 virtio_gpu_object_attach(vgdev, bo, ents, nents); in virtio_gpu_object_create()
261 *bo_ptr = bo; in virtio_gpu_object_create()
269 virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle); in virtio_gpu_object_create()