diff options
author | Christian König <[email protected]> | 2021-02-17 14:48:07 +0100 |
---|---|---|
committer | Alex Deucher <[email protected]> | 2021-03-23 23:29:57 -0400 |
commit | 755eadf662881ef41bcf221d179336781c7a73dd (patch) | |
tree | 4c910e585ac7ad934c37f0e61e7c5ebf762106b6 | |
parent | 498ad8ec2ff025faa94a872068c6167a9b4c3d2b (diff) |
drm/amdgpu: use new cursor in amdgpu_mem_visible
Separate the drm_mm_node walking from the actual handling.
Signed-off-by: Christian König <[email protected]>
Acked-by: Oak Zeng <[email protected]>
Tested-by: Nirmoy Das <[email protected]>
Reviewed-by: Arunpravin <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 9895ece72bbe..36ce6f7471e2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -441,7 +441,8 @@ error: static bool amdgpu_mem_visible(struct amdgpu_device *adev, struct ttm_resource *mem) { - struct drm_mm_node *nodes = mem->mm_node; + uint64_t mem_size = (u64)mem->num_pages << PAGE_SHIFT; + struct amdgpu_res_cursor cursor; if (mem->mem_type == TTM_PL_SYSTEM || mem->mem_type == TTM_PL_TT) @@ -449,12 +450,13 @@ static bool amdgpu_mem_visible(struct amdgpu_device *adev, if (mem->mem_type != TTM_PL_VRAM) return false; + amdgpu_res_first(mem, 0, mem_size, &cursor); + /* ttm_resource_ioremap only supports contiguous memory */ - if (nodes->size != mem->num_pages) + if (cursor.size != mem_size) return false; - return ((nodes->start + nodes->size) << PAGE_SHIFT) - <= adev->gmc.visible_vram_size; + return cursor.start + cursor.size <= adev->gmc.visible_vram_size; } /* |