drm/amdgpu: handle leaf PDEs as PTEs on Vega
This way we get retry faults for missing PDs. 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:
Родитель
5fa76a9dfe
Коммит
b6f3a51e0a
|
@ -787,15 +787,22 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entries) {
|
if (entries) {
|
||||||
uint64_t value = 0;
|
uint64_t value = 0, flags = 0;
|
||||||
|
|
||||||
/* Workaround for fault priority problem on GMC9 */
|
if (adev->asic_type >= CHIP_VEGA10) {
|
||||||
if (level == AMDGPU_VM_PTB &&
|
if (level != AMDGPU_VM_PTB) {
|
||||||
adev->asic_type >= CHIP_VEGA10)
|
/* Handle leaf PDEs as PTEs */
|
||||||
value = AMDGPU_PTE_EXECUTABLE;
|
flags |= AMDGPU_PDE_PTE;
|
||||||
|
amdgpu_gmc_get_vm_pde(adev, level,
|
||||||
|
&value, &flags);
|
||||||
|
} else {
|
||||||
|
/* Workaround for fault priority problem on GMC9 */
|
||||||
|
flags = AMDGPU_PTE_EXECUTABLE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
r = vm->update_funcs->update(¶ms, bo, addr, 0, entries,
|
r = vm->update_funcs->update(¶ms, bo, addr, 0, entries,
|
||||||
0, value);
|
value, flags);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче