Lines Matching refs:bo
36 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtgpu_virtio_get_uuid() local
39 wait_event(vgdev->resp_wq, bo->uuid_state != STATE_INITIALIZING); in virtgpu_virtio_get_uuid()
40 if (bo->uuid_state != STATE_OK) in virtgpu_virtio_get_uuid()
43 uuid_copy(uuid, &bo->uuid); in virtgpu_virtio_get_uuid()
53 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtgpu_gem_map_dma_buf() local
55 if (virtio_gpu_is_vram(bo)) in virtgpu_gem_map_dma_buf()
56 return virtio_gpu_vram_map_dma_buf(bo, attach->dev, dir); in virtgpu_gem_map_dma_buf()
66 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtgpu_gem_unmap_dma_buf() local
68 if (virtio_gpu_is_vram(bo)) { in virtgpu_gem_unmap_dma_buf()
92 struct virtio_gpu_object *bo) in virtio_gpu_resource_assign_uuid() argument
100 virtio_gpu_array_add_obj(objs, &bo->base.base); in virtio_gpu_resource_assign_uuid()
111 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtgpu_gem_prime_export() local
113 bool blob = bo->host3d_blob || bo->guest_blob; in virtgpu_gem_prime_export()
118 ret = virtio_gpu_resource_assign_uuid(vgdev, bo); in virtgpu_gem_prime_export()
124 bo->uuid_state = STATE_ERR; in virtgpu_gem_prime_export()
126 } else if (!(bo->blob_flags & VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE)) { in virtgpu_gem_prime_export()
127 bo->uuid_state = STATE_ERR; in virtgpu_gem_prime_export()
148 struct virtio_gpu_object *bo, in virtgpu_dma_buf_import_sgt() argument
182 bo->sgt = sgt; in virtgpu_dma_buf_import_sgt()
186 static void virtgpu_dma_buf_unmap(struct virtio_gpu_object *bo) in virtgpu_dma_buf_unmap() argument
188 struct dma_buf_attachment *attach = bo->base.base.import_attach; in virtgpu_dma_buf_unmap()
192 if (bo->created) { in virtgpu_dma_buf_unmap()
193 virtio_gpu_detach_object_fenced(bo); in virtgpu_dma_buf_unmap()
195 if (bo->sgt) in virtgpu_dma_buf_unmap()
196 dma_buf_unmap_attachment(attach, bo->sgt, in virtgpu_dma_buf_unmap()
199 bo->sgt = NULL; in virtgpu_dma_buf_unmap()
205 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtgpu_dma_buf_free_obj() local
213 virtgpu_dma_buf_unmap(bo); in virtgpu_dma_buf_free_obj()
220 if (bo->created) { in virtgpu_dma_buf_free_obj()
221 virtio_gpu_cmd_unref_resource(vgdev, bo); in virtgpu_dma_buf_free_obj()
225 virtio_gpu_cleanup_object(bo); in virtgpu_dma_buf_free_obj()
229 struct virtio_gpu_object *bo, in virtgpu_dma_buf_init_obj() argument
239 ret = virtio_gpu_resource_id_get(vgdev, &bo->hw_res_handle); in virtgpu_dma_buf_init_obj()
241 virtgpu_dma_buf_free_obj(&bo->base.base); in virtgpu_dma_buf_init_obj()
251 ret = virtgpu_dma_buf_import_sgt(&ents, &nents, bo, attach); in virtgpu_dma_buf_init_obj()
260 virtio_gpu_cmd_resource_create_blob(vgdev, bo, ¶ms, in virtgpu_dma_buf_init_obj()
262 bo->guest_blob = true; in virtgpu_dma_buf_init_obj()
273 virtgpu_dma_buf_free_obj(&bo->base.base); in virtgpu_dma_buf_init_obj()
284 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtgpu_dma_buf_move_notify() local
286 virtgpu_dma_buf_unmap(bo); in virtgpu_dma_buf_move_notify()
299 struct virtio_gpu_object *bo; in virtgpu_gem_prime_import() local
318 bo = kzalloc(sizeof(*bo), GFP_KERNEL); in virtgpu_gem_prime_import()
319 if (!bo) in virtgpu_gem_prime_import()
322 obj = &bo->base.base; in virtgpu_gem_prime_import()
330 kfree(bo); in virtgpu_gem_prime_import()
337 ret = virtgpu_dma_buf_init_obj(dev, bo, attach); in virtgpu_gem_prime_import()