diff options
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_ttm.c')
-rw-r--r-- | drivers/gpu/drm/virtio/virtgpu_ttm.c | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c index cd63dffa6d40..4bfbf25fabff 100644 --- a/drivers/gpu/drm/virtio/virtgpu_ttm.c +++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c | |||
@@ -50,62 +50,6 @@ virtio_gpu_device *virtio_gpu_get_vgdev(struct ttm_bo_device *bdev) | |||
50 | return vgdev; | 50 | return vgdev; |
51 | } | 51 | } |
52 | 52 | ||
53 | static int virtio_gpu_ttm_mem_global_init(struct drm_global_reference *ref) | ||
54 | { | ||
55 | return ttm_mem_global_init(ref->object); | ||
56 | } | ||
57 | |||
58 | static void virtio_gpu_ttm_mem_global_release(struct drm_global_reference *ref) | ||
59 | { | ||
60 | ttm_mem_global_release(ref->object); | ||
61 | } | ||
62 | |||
63 | static int virtio_gpu_ttm_global_init(struct virtio_gpu_device *vgdev) | ||
64 | { | ||
65 | struct drm_global_reference *global_ref; | ||
66 | int r; | ||
67 | |||
68 | vgdev->mman.mem_global_referenced = false; | ||
69 | global_ref = &vgdev->mman.mem_global_ref; | ||
70 | global_ref->global_type = DRM_GLOBAL_TTM_MEM; | ||
71 | global_ref->size = sizeof(struct ttm_mem_global); | ||
72 | global_ref->init = &virtio_gpu_ttm_mem_global_init; | ||
73 | global_ref->release = &virtio_gpu_ttm_mem_global_release; | ||
74 | |||
75 | r = drm_global_item_ref(global_ref); | ||
76 | if (r != 0) { | ||
77 | DRM_ERROR("Failed setting up TTM memory accounting " | ||
78 | "subsystem.\n"); | ||
79 | return r; | ||
80 | } | ||
81 | |||
82 | vgdev->mman.bo_global_ref.mem_glob = | ||
83 | vgdev->mman.mem_global_ref.object; | ||
84 | global_ref = &vgdev->mman.bo_global_ref.ref; | ||
85 | global_ref->global_type = DRM_GLOBAL_TTM_BO; | ||
86 | global_ref->size = sizeof(struct ttm_bo_global); | ||
87 | global_ref->init = &ttm_bo_global_init; | ||
88 | global_ref->release = &ttm_bo_global_release; | ||
89 | r = drm_global_item_ref(global_ref); | ||
90 | if (r != 0) { | ||
91 | DRM_ERROR("Failed setting up TTM BO subsystem.\n"); | ||
92 | drm_global_item_unref(&vgdev->mman.mem_global_ref); | ||
93 | return r; | ||
94 | } | ||
95 | |||
96 | vgdev->mman.mem_global_referenced = true; | ||
97 | return 0; | ||
98 | } | ||
99 | |||
100 | static void virtio_gpu_ttm_global_fini(struct virtio_gpu_device *vgdev) | ||
101 | { | ||
102 | if (vgdev->mman.mem_global_referenced) { | ||
103 | drm_global_item_unref(&vgdev->mman.bo_global_ref.ref); | ||
104 | drm_global_item_unref(&vgdev->mman.mem_global_ref); | ||
105 | vgdev->mman.mem_global_referenced = false; | ||
106 | } | ||
107 | } | ||
108 | |||
109 | int virtio_gpu_mmap(struct file *filp, struct vm_area_struct *vma) | 53 | int virtio_gpu_mmap(struct file *filp, struct vm_area_struct *vma) |
110 | { | 54 | { |
111 | struct drm_file *file_priv; | 55 | struct drm_file *file_priv; |
@@ -382,12 +326,8 @@ int virtio_gpu_ttm_init(struct virtio_gpu_device *vgdev) | |||
382 | { | 326 | { |
383 | int r; | 327 | int r; |
384 | 328 | ||
385 | r = virtio_gpu_ttm_global_init(vgdev); | ||
386 | if (r) | ||
387 | return r; | ||
388 | /* No others user of address space so set it to 0 */ | 329 | /* No others user of address space so set it to 0 */ |
389 | r = ttm_bo_device_init(&vgdev->mman.bdev, | 330 | r = ttm_bo_device_init(&vgdev->mman.bdev, |
390 | vgdev->mman.bo_global_ref.ref.object, | ||
391 | &virtio_gpu_bo_driver, | 331 | &virtio_gpu_bo_driver, |
392 | vgdev->ddev->anon_inode->i_mapping, | 332 | vgdev->ddev->anon_inode->i_mapping, |
393 | DRM_FILE_PAGE_OFFSET, 0); | 333 | DRM_FILE_PAGE_OFFSET, 0); |
@@ -406,13 +346,11 @@ int virtio_gpu_ttm_init(struct virtio_gpu_device *vgdev) | |||
406 | err_mm_init: | 346 | err_mm_init: |
407 | ttm_bo_device_release(&vgdev->mman.bdev); | 347 | ttm_bo_device_release(&vgdev->mman.bdev); |
408 | err_dev_init: | 348 | err_dev_init: |
409 | virtio_gpu_ttm_global_fini(vgdev); | ||
410 | return r; | 349 | return r; |
411 | } | 350 | } |
412 | 351 | ||
413 | void virtio_gpu_ttm_fini(struct virtio_gpu_device *vgdev) | 352 | void virtio_gpu_ttm_fini(struct virtio_gpu_device *vgdev) |
414 | { | 353 | { |
415 | ttm_bo_device_release(&vgdev->mman.bdev); | 354 | ttm_bo_device_release(&vgdev->mman.bdev); |
416 | virtio_gpu_ttm_global_fini(vgdev); | ||
417 | DRM_INFO("virtio_gpu: ttm finalized\n"); | 355 | DRM_INFO("virtio_gpu: ttm finalized\n"); |
418 | } | 356 | } |