Retire the 32bit range and the low range on Vega10. AFAIK THe 32bit
range was never used by any open source component and this frees up
everything below 0xffff800000000000 for HMM.

Signed-off-by: Christian König <[email protected]>
---
 amdgpu/amdgpu_device.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c
index d7077184..5ccef300 100644
--- a/amdgpu/amdgpu_device.c
+++ b/amdgpu/amdgpu_device.c
@@ -264,13 +264,20 @@ int amdgpu_device_initialize(int fd,
                goto cleanup;
        }
 
-       start = dev->dev_info.virtual_address_offset;
-       max = MIN2(dev->dev_info.virtual_address_max, 0x100000000ULL);
-       amdgpu_vamgr_init(&dev->vamgr_32, start, max,
-                         dev->dev_info.virtual_address_alignment);
-
-       start = MAX2(dev->dev_info.virtual_address_offset, 0x100000000ULL);
-       max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL);
+       if (dev->dev_info.high_va_offset && dev->dev_info.high_va_max) {
+               amdgpu_vamgr_init(&dev->vamgr_32, 0, 0, 0);
+
+               start = dev->dev_info.high_va_offset;
+               max = dev->dev_info.high_va_max;
+       } else {
+               start = dev->dev_info.virtual_address_offset;
+               max = MIN2(dev->dev_info.virtual_address_max, 0x100000000ULL);
+               amdgpu_vamgr_init(&dev->vamgr_32, start, max,
+                                 dev->dev_info.virtual_address_alignment);
+
+               start = MAX2(dev->dev_info.virtual_address_offset, 
0x100000000ULL);
+               max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL);
+       }
        amdgpu_vamgr_init(&dev->vamgr, start, max,
                          dev->dev_info.virtual_address_alignment);
 
-- 
2.11.0

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to