mirror of
https://github.com/torvalds/linux.git
synced 2026-05-02 21:42:42 -04:00
drm/virtio: implement blob resources: implement vram object
A virtio-gpu vram object is based on range-based allocation. No guest shmemfs backing, so we call drm_gem_private_object_init. This is for host memory without any guest backing (atleast initially). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Link: http://patchwork.freedesktop.org/patch/msgid/20200924003214.662-12-gurchetansingh@chromium.org Co-developed-by: Gurchetan Singh <gurchetansingh@chromium.org> Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org>
This commit is contained in:
@@ -84,6 +84,18 @@ void virtio_gpu_cleanup_object(struct virtio_gpu_object *bo)
|
||||
}
|
||||
|
||||
drm_gem_shmem_free_object(&bo->base.base);
|
||||
} else if (virtio_gpu_is_vram(bo)) {
|
||||
struct virtio_gpu_object_vram *vram = to_virtio_gpu_vram(bo);
|
||||
|
||||
spin_lock(&vgdev->host_visible_lock);
|
||||
if (drm_mm_node_allocated(&vram->vram_node))
|
||||
drm_mm_remove_node(&vram->vram_node);
|
||||
|
||||
spin_unlock(&vgdev->host_visible_lock);
|
||||
|
||||
drm_gem_free_mmap_offset(&vram->base.base.base);
|
||||
drm_gem_object_release(&vram->base.base.base);
|
||||
kfree(vram);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user