drm/amdgpu: fix amdgpu_vm_num_entries
The block size only affects the leave nodes, everything else is fixed. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
507831473f
commit
0410c5e514
@ -166,17 +166,17 @@ static unsigned amdgpu_vm_level_shift(struct amdgpu_device *adev,
|
|||||||
static unsigned amdgpu_vm_num_entries(struct amdgpu_device *adev,
|
static unsigned amdgpu_vm_num_entries(struct amdgpu_device *adev,
|
||||||
unsigned level)
|
unsigned level)
|
||||||
{
|
{
|
||||||
|
unsigned shift = amdgpu_vm_level_shift(adev, 0);
|
||||||
|
|
||||||
if (level == 0)
|
if (level == 0)
|
||||||
/* For the root directory */
|
/* For the root directory */
|
||||||
return adev->vm_manager.max_pfn >>
|
return round_up(adev->vm_manager.max_pfn, 1 << shift) >> shift;
|
||||||
(adev->vm_manager.block_size *
|
else if (level != adev->vm_manager.num_level)
|
||||||
adev->vm_manager.num_level);
|
/* Everything in between */
|
||||||
else if (level == adev->vm_manager.num_level)
|
return 512;
|
||||||
|
else
|
||||||
/* For the page tables on the leaves */
|
/* For the page tables on the leaves */
|
||||||
return AMDGPU_VM_PTE_COUNT(adev);
|
return AMDGPU_VM_PTE_COUNT(adev);
|
||||||
else
|
|
||||||
/* Everything in between */
|
|
||||||
return 1 << adev->vm_manager.block_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user