Lines Matching refs:bo
64 void virtio_gpu_cleanup_object(struct virtio_gpu_object *bo)
66 struct virtio_gpu_device *vgdev = bo->base.base.dev->dev_private;
68 virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle);
69 if (virtio_gpu_is_shmem(bo)) {
70 drm_gem_shmem_free(&bo->base);
71 } else if (virtio_gpu_is_vram(bo)) {
72 struct virtio_gpu_object_vram *vram = to_virtio_gpu_vram(bo);
88 struct virtio_gpu_object *bo = gem_to_virtio_gpu_obj(obj);
89 struct virtio_gpu_device *vgdev = bo->base.base.dev->dev_private;
91 if (bo->created) {
92 virtio_gpu_cmd_unref_resource(vgdev, bo);
97 virtio_gpu_cleanup_object(bo);
115 bool virtio_gpu_is_shmem(struct virtio_gpu_object *bo)
117 return bo->base.base.funcs == &virtio_gpu_shmem_funcs;
136 struct virtio_gpu_object *bo,
145 pages = drm_gem_shmem_get_pages_sgt(&bo->base);
186 struct virtio_gpu_object *bo;
197 bo = gem_to_virtio_gpu_obj(&shmem_obj->base);
199 ret = virtio_gpu_resource_id_get(vgdev, &bo->hw_res_handle);
203 bo->dumb = params->dumb;
205 ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents);
214 virtio_gpu_array_add_obj(objs, &bo->base.base);
223 bo->guest_blob = true;
225 virtio_gpu_cmd_resource_create_blob(vgdev, bo, params,
228 virtio_gpu_cmd_resource_create_3d(vgdev, bo, params,
230 virtio_gpu_object_attach(vgdev, bo, ents, nents);
232 virtio_gpu_cmd_create_resource(vgdev, bo, params,
234 virtio_gpu_object_attach(vgdev, bo, ents, nents);
237 *bo_ptr = bo;
245 virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle);