Lines Matching refs:bo

64 void virtio_gpu_cleanup_object(struct virtio_gpu_object *bo)  in virtio_gpu_cleanup_object()  argument
66 struct virtio_gpu_device *vgdev = bo->base.base.dev->dev_private; in virtio_gpu_cleanup_object()
68 virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle); in virtio_gpu_cleanup_object()
69 if (virtio_gpu_is_shmem(bo)) { in virtio_gpu_cleanup_object()
70 struct virtio_gpu_object_shmem *shmem = to_virtio_gpu_shmem(bo); in virtio_gpu_cleanup_object()
82 drm_gem_shmem_unpin(&bo->base.base); in virtio_gpu_cleanup_object()
85 drm_gem_shmem_free_object(&bo->base.base); in virtio_gpu_cleanup_object()
86 } else if (virtio_gpu_is_vram(bo)) { in virtio_gpu_cleanup_object()
87 struct virtio_gpu_object_vram *vram = to_virtio_gpu_vram(bo); in virtio_gpu_cleanup_object()
103 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj); in virtio_gpu_free_object() local
104 struct virtio_gpu_device *vgdev = bo->base.base.dev->dev_private; in virtio_gpu_free_object()
106 if (bo->created) { in virtio_gpu_free_object()
107 virtio_gpu_cmd_unref_resource(vgdev, bo); in virtio_gpu_free_object()
112 virtio_gpu_cleanup_object(bo); in virtio_gpu_free_object()
130 bool virtio_gpu_is_shmem(struct virtio_gpu_object *bo) in virtio_gpu_is_shmem() argument
132 return bo->base.base.funcs == &virtio_gpu_shmem_funcs; in virtio_gpu_is_shmem()
151 struct virtio_gpu_object *bo, in virtio_gpu_object_shmem_init() argument
156 struct virtio_gpu_object_shmem *shmem = to_virtio_gpu_shmem(bo); in virtio_gpu_object_shmem_init()
160 ret = drm_gem_shmem_pin(&bo->base.base); in virtio_gpu_object_shmem_init()
170 shmem->pages = drm_gem_shmem_get_sg_table(&bo->base.base); in virtio_gpu_object_shmem_init()
172 drm_gem_shmem_unpin(&bo->base.base); in virtio_gpu_object_shmem_init()
218 struct virtio_gpu_object *bo; in virtio_gpu_object_create() local
229 bo = gem_to_virtio_gpu_obj(&shmem_obj->base); in virtio_gpu_object_create()
231 ret = virtio_gpu_resource_id_get(vgdev, &bo->hw_res_handle); in virtio_gpu_object_create()
235 bo->dumb = params->dumb; in virtio_gpu_object_create()
242 virtio_gpu_array_add_obj(objs, &bo->base.base); in virtio_gpu_object_create()
249 ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents); in virtio_gpu_object_create()
258 bo->guest_blob = true; in virtio_gpu_object_create()
260 virtio_gpu_cmd_resource_create_blob(vgdev, bo, params, in virtio_gpu_object_create()
263 virtio_gpu_cmd_resource_create_3d(vgdev, bo, params, in virtio_gpu_object_create()
265 virtio_gpu_object_attach(vgdev, bo, ents, nents); in virtio_gpu_object_create()
267 virtio_gpu_cmd_create_resource(vgdev, bo, params, in virtio_gpu_object_create()
269 virtio_gpu_object_attach(vgdev, bo, ents, nents); in virtio_gpu_object_create()
272 *bo_ptr = bo; in virtio_gpu_object_create()
278 virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle); in virtio_gpu_object_create()