diff options
author | Christian König <christian.koenig@amd.com> | 2018-08-27 12:22:31 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-09-10 23:41:24 -0400 |
commit | ad9a5b78f585e9a9bd5ad06dfaf1269659a99f43 (patch) | |
tree | 3353b464a93fb9c6a0531a77815f3f838ae4b7f5 /drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | |
parent | bcdc9fd634d1f0949774690e9e79ffdfc5d094c8 (diff) |
drm/amdgpu: correctly sign extend 48bit addresses v3
Correct sign extend the GMC addresses to 48bit.
v2: sign extending turned out easier than thought.
v3: clean up the defines and move them into amdgpu_gmc.h as well
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 38856365580d..f2f358aa0597 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | |||
@@ -28,9 +28,7 @@ uint64_t amdgpu_csa_vaddr(struct amdgpu_device *adev) | |||
28 | uint64_t addr = adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT; | 28 | uint64_t addr = adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT; |
29 | 29 | ||
30 | addr -= AMDGPU_VA_RESERVED_SIZE; | 30 | addr -= AMDGPU_VA_RESERVED_SIZE; |
31 | 31 | addr = amdgpu_gmc_sign_extend(addr); | |
32 | if (addr >= AMDGPU_VA_HOLE_START) | ||
33 | addr |= AMDGPU_VA_HOLE_END; | ||
34 | 32 | ||
35 | return addr; | 33 | return addr; |
36 | } | 34 | } |
@@ -73,7 +71,7 @@ void amdgpu_free_static_csa(struct amdgpu_device *adev) { | |||
73 | int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm, | 71 | int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm, |
74 | struct amdgpu_bo_va **bo_va) | 72 | struct amdgpu_bo_va **bo_va) |
75 | { | 73 | { |
76 | uint64_t csa_addr = amdgpu_csa_vaddr(adev) & AMDGPU_VA_HOLE_MASK; | 74 | uint64_t csa_addr = amdgpu_csa_vaddr(adev) & AMDGPU_GMC_HOLE_MASK; |
77 | struct ww_acquire_ctx ticket; | 75 | struct ww_acquire_ctx ticket; |
78 | struct list_head list; | 76 | struct list_head list; |
79 | struct amdgpu_bo_list_entry pd; | 77 | struct amdgpu_bo_list_entry pd; |