aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--amdgpu/amdgpu_device.c9
-rw-r--r--include/drm/amdgpu_drm.h4
2 files changed, 11 insertions, 2 deletions
diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c
index fa4ab0e7..e04424d3 100644
--- a/amdgpu/amdgpu_device.c
+++ b/amdgpu/amdgpu_device.c
@@ -275,8 +275,13 @@ int amdgpu_device_initialize(int fd,
275 amdgpu_vamgr_init(&dev->vamgr_32, start, max, 275 amdgpu_vamgr_init(&dev->vamgr_32, start, max,
276 dev->dev_info.virtual_address_alignment); 276 dev->dev_info.virtual_address_alignment);
277 277
278 start = MAX2(dev->dev_info.virtual_address_offset, 0x100000000ULL); 278 if (dev->dev_info.high_va_offset && dev->dev_info.high_va_max) {
279 max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL); 279 start = dev->dev_info.high_va_offset;
280 max = dev->dev_info.high_va_max;
281 } else {
282 start = MAX2(dev->dev_info.virtual_address_offset, 0x100000000ULL);
283 max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL);
284 }
280 amdgpu_vamgr_init(&dev->vamgr, start, max, 285 amdgpu_vamgr_init(&dev->vamgr, start, max,
281 dev->dev_info.virtual_address_alignment); 286 dev->dev_info.virtual_address_alignment);
282 287
diff --git a/include/drm/amdgpu_drm.h b/include/drm/amdgpu_drm.h
index 919248fb..a023b476 100644
--- a/include/drm/amdgpu_drm.h
+++ b/include/drm/amdgpu_drm.h
@@ -869,6 +869,10 @@ struct drm_amdgpu_info_device {
869 __u32 _pad1; 869 __u32 _pad1;
870 /* always on cu bitmap */ 870 /* always on cu bitmap */
871 __u32 cu_ao_bitmap[4][4]; 871 __u32 cu_ao_bitmap[4][4];
872 /** Starting high virtual address for UMDs. */
873 __u64 high_va_offset;
874 /** The maximum high virtual address */
875 __u64 high_va_max;
872}; 876};
873 877
874struct drm_amdgpu_info_hw_ip { 878struct drm_amdgpu_info_hw_ip {