aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--amdgpu/amdgpu_device.c24
-rw-r--r--amdgpu/amdgpu_internal.h7
-rw-r--r--amdgpu/amdgpu_vamgr.c4
3 files changed, 8 insertions, 27 deletions
diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c
index 2b31c45b..344e87ed 100644
--- a/amdgpu/amdgpu_device.c
+++ b/amdgpu/amdgpu_device.c
@@ -270,22 +270,16 @@ int amdgpu_device_initialize(int fd,
270 goto cleanup; 270 goto cleanup;
271 } 271 }
272 272
273 amdgpu_vamgr_init(&dev->vamgr, dev->dev_info.virtual_address_offset, 273 start = dev->dev_info.virtual_address_offset;
274 dev->dev_info.virtual_address_max,
275 dev->dev_info.virtual_address_alignment);
276
277 max = MIN2(dev->dev_info.virtual_address_max, 0xffffffff); 274 max = MIN2(dev->dev_info.virtual_address_max, 0xffffffff);
278 start = amdgpu_vamgr_find_va(&dev->vamgr,
279 max - dev->dev_info.virtual_address_offset,
280 dev->dev_info.virtual_address_alignment, 0);
281 if (start > 0xffffffff) {
282 fprintf(stderr, "%s: amdgpu_vamgr_find_va failed\n", __func__);
283 goto free_va; /* shouldn't get here */
284 }
285
286 amdgpu_vamgr_init(&dev->vamgr_32, start, max, 275 amdgpu_vamgr_init(&dev->vamgr_32, start, max,
287 dev->dev_info.virtual_address_alignment); 276 dev->dev_info.virtual_address_alignment);
288 277
278 start = MAX2(dev->dev_info.virtual_address_offset, 0x100000000ULL);
279 max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL);
280 amdgpu_vamgr_init(&dev->vamgr, start, max,
281 dev->dev_info.virtual_address_alignment);
282
289 r = amdgpu_parse_asic_ids(&dev->asic_ids); 283 r = amdgpu_parse_asic_ids(&dev->asic_ids);
290 if (r) { 284 if (r) {
291 fprintf(stderr, "%s: Cannot parse ASIC IDs, 0x%x.", 285 fprintf(stderr, "%s: Cannot parse ASIC IDs, 0x%x.",
@@ -300,12 +294,6 @@ int amdgpu_device_initialize(int fd,
300 294
301 return 0; 295 return 0;
302 296
303free_va:
304 r = -ENOMEM;
305 amdgpu_vamgr_free_va(&dev->vamgr, start,
306 max - dev->dev_info.virtual_address_offset);
307 amdgpu_vamgr_deinit(&dev->vamgr);
308
309cleanup: 297cleanup:
310 if (dev->fd >= 0) 298 if (dev->fd >= 0)
311 close(dev->fd); 299 close(dev->fd);
diff --git a/amdgpu/amdgpu_internal.h b/amdgpu/amdgpu_internal.h
index 56d15112..e26e5190 100644
--- a/amdgpu/amdgpu_internal.h
+++ b/amdgpu/amdgpu_internal.h
@@ -148,13 +148,6 @@ drm_private void amdgpu_vamgr_init(struct amdgpu_bo_va_mgr *mgr, uint64_t start,
148 148
149drm_private void amdgpu_vamgr_deinit(struct amdgpu_bo_va_mgr *mgr); 149drm_private void amdgpu_vamgr_deinit(struct amdgpu_bo_va_mgr *mgr);
150 150
151drm_private uint64_t
152amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
153 uint64_t alignment, uint64_t base_required);
154
155drm_private void
156amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size);
157
158drm_private int amdgpu_parse_asic_ids(struct amdgpu_asic_id **asic_ids); 151drm_private int amdgpu_parse_asic_ids(struct amdgpu_asic_id **asic_ids);
159 152
160drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev); 153drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev);
diff --git a/amdgpu/amdgpu_vamgr.c b/amdgpu/amdgpu_vamgr.c
index 8516b594..ab425ef7 100644
--- a/amdgpu/amdgpu_vamgr.c
+++ b/amdgpu/amdgpu_vamgr.c
@@ -66,7 +66,7 @@ drm_private void amdgpu_vamgr_deinit(struct amdgpu_bo_va_mgr *mgr)
66 pthread_mutex_destroy(&mgr->bo_va_mutex); 66 pthread_mutex_destroy(&mgr->bo_va_mutex);
67} 67}
68 68
69drm_private uint64_t 69static drm_private uint64_t
70amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size, 70amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
71 uint64_t alignment, uint64_t base_required) 71 uint64_t alignment, uint64_t base_required)
72{ 72{
@@ -155,7 +155,7 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
155 return offset; 155 return offset;
156} 156}
157 157
158drm_private void 158static drm_private void
159amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size) 159amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size)
160{ 160{
161 struct amdgpu_bo_va_hole *hole; 161 struct amdgpu_bo_va_hole *hole;