diff options
author | Christian König <christian.koenig@amd.com> | 2018-02-26 12:30:36 +0100 |
---|---|---|
committer | Christian König <christian.koenig@amd.com> | 2018-02-28 13:27:38 +0100 |
commit | cd8a80493beea4fbdd0a2e0b68ef0adbdaac1133 (patch) | |
tree | 14354a05b0ec22fda9e4d40189caa9f5ff9c6dad /amdgpu/amdgpu_device.c | |
parent | 1384c0812337515694731a18643faf504402bece (diff) | |
download | external_libdrm-cd8a80493beea4fbdd0a2e0b68ef0adbdaac1133.tar.gz external_libdrm-cd8a80493beea4fbdd0a2e0b68ef0adbdaac1133.tar.bz2 external_libdrm-cd8a80493beea4fbdd0a2e0b68ef0adbdaac1133.zip |
amdgpu: mostly revert "use the high VA range if possible v2"
This reverts commit 07ea20d5beb24315b721adf83bbfa72ce016e146.
Unfortunately it turned out that this change broke some corner cases in
Mesa.
Revert it for now, but keep the high range in separate VA managers.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'amdgpu/amdgpu_device.c')
-rw-r--r-- | amdgpu/amdgpu_device.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c index 6ee25a9e..ca0c7987 100644 --- a/amdgpu/amdgpu_device.c +++ b/amdgpu/amdgpu_device.c @@ -264,27 +264,29 @@ int amdgpu_device_initialize(int fd, goto cleanup; } - if (dev->dev_info.high_va_offset && dev->dev_info.high_va_max) { - start = dev->dev_info.high_va_offset; - max = dev->dev_info.high_va_max; - } else { - start = dev->dev_info.virtual_address_offset; - max = dev->dev_info.virtual_address_max; - } - - max = MIN2(max, (start & ~0xffffffffULL) + 0x100000000ULL); + 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); dev->address32_hi = start >> 32; start = max; - if (dev->dev_info.high_va_offset && dev->dev_info.high_va_max) - max = dev->dev_info.high_va_max; - else - max = dev->dev_info.virtual_address_max; + max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL); amdgpu_vamgr_init(&dev->vamgr, start, max, dev->dev_info.virtual_address_alignment); + start = dev->dev_info.high_va_offset; + max = MIN2(dev->dev_info.high_va_max, (start & ~0xffffffffULL) + + 0x100000000ULL); + amdgpu_vamgr_init(&dev->vamgr_high_32, start, max, + dev->dev_info.virtual_address_alignment); + + start = max; + max = MAX2(dev->dev_info.high_va_max, (start & ~0xffffffffULL) + + 0x100000000ULL); + amdgpu_vamgr_init(&dev->vamgr_high, start, max, + dev->dev_info.virtual_address_alignment); + amdgpu_parse_asic_ids(dev); *major_version = dev->major_version; |