Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: apply top reserved VA space to pre Vega10 as well

Reserve VA space at the top for older generations as well.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Monk Liu <monk.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Christian König and committed by
Alex Deucher
a3e9a15a 18d09e63

+7 -4
+1 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
··· 580 580 dev_info.ids_flags |= AMDGPU_IDS_FLAGS_PREEMPTION; 581 581 582 582 vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE; 583 + vm_size -= AMDGPU_VA_RESERVED_SIZE; 583 584 dev_info.virtual_address_offset = AMDGPU_VA_RESERVED_SIZE; 584 585 dev_info.virtual_address_max = 585 586 min(vm_size, AMDGPU_VA_HOLE_START); 586 587 587 - vm_size -= AMDGPU_VA_RESERVED_SIZE; 588 588 if (vm_size > AMDGPU_VA_HOLE_START) { 589 589 dev_info.high_va_offset = AMDGPU_VA_HOLE_END; 590 590 dev_info.high_va_max = AMDGPU_VA_HOLE_END | vm_size;
+2 -1
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
··· 469 469 470 470 if (enable) { 471 471 uint32_t low = AMDGPU_VA_RESERVED_SIZE >> AMDGPU_GPU_PAGE_SHIFT; 472 - uint32_t high = adev->vm_manager.max_pfn; 472 + uint32_t high = adev->vm_manager.max_pfn - 473 + (AMDGPU_VA_RESERVED_SIZE >> AMDGPU_GPU_PAGE_SHIFT); 473 474 474 475 WREG32(mmVM_PRT_APERTURE0_LOW_ADDR, low); 475 476 WREG32(mmVM_PRT_APERTURE1_LOW_ADDR, low);
+2 -1
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
··· 562 562 563 563 if (enable) { 564 564 uint32_t low = AMDGPU_VA_RESERVED_SIZE >> AMDGPU_GPU_PAGE_SHIFT; 565 - uint32_t high = adev->vm_manager.max_pfn; 565 + uint32_t high = adev->vm_manager.max_pfn - 566 + (AMDGPU_VA_RESERVED_SIZE >> AMDGPU_GPU_PAGE_SHIFT); 566 567 567 568 WREG32(mmVM_PRT_APERTURE0_LOW_ADDR, low); 568 569 WREG32(mmVM_PRT_APERTURE1_LOW_ADDR, low);
+2 -1
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
··· 762 762 763 763 if (enable) { 764 764 uint32_t low = AMDGPU_VA_RESERVED_SIZE >> AMDGPU_GPU_PAGE_SHIFT; 765 - uint32_t high = adev->vm_manager.max_pfn; 765 + uint32_t high = adev->vm_manager.max_pfn - 766 + (AMDGPU_VA_RESERVED_SIZE >> AMDGPU_GPU_PAGE_SHIFT); 766 767 767 768 WREG32(mmVM_PRT_APERTURE0_LOW_ADDR, low); 768 769 WREG32(mmVM_PRT_APERTURE1_LOW_ADDR, low);