On 7/1/26 18:17, Timur Kristóf wrote: > When retry faults are disabled (amdgpu.noretry=1), > the ENABLE_RETRY_FAULT_INTERRUPT bit should be programmed to 0. > > Note that retry faults are enabled by default on GFX12.1 > so this just fixes the case when they are explicitly disabled. > > Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Christian König <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/gfxhub_v12_1.c | 4 ++-- > drivers/gpu/drm/amd/amdgpu/mmhub_v4_2_0.c | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v12_1.c > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v12_1.c > index 4c2fd1e6616e..0cada13d92a4 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v12_1.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v12_1.c > @@ -243,7 +243,7 @@ static void > gfxhub_v12_1_xcc_init_system_aperture_regs(struct amdgpu_device *ade > tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2, > ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1); > tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2, > - ENABLE_RETRY_FAULT_INTERRUPT, 0x1); > + ENABLE_RETRY_FAULT_INTERRUPT, > !adev->gmc.noretry); > WREG32_SOC15(GC, GET_INST(GC, i), > regGCVM_L2_PROTECTION_FAULT_CNTL2, tmp); > } > @@ -447,7 +447,7 @@ static void gfxhub_v12_1_xcc_setup_vmid_config(struct > amdgpu_device *adev, > /* Send no-retry XNACK on fault to suppress VM fault > storm */ > tmp = REG_SET_FIELD(tmp, GCVM_CONTEXT1_CNTL, > > RETRY_PERMISSION_OR_INVALID_PAGE_FAULT, > - 1); > + !adev->gmc.noretry); > WREG32_SOC15_OFFSET(GC, GET_INST(GC, j), > regGCVM_CONTEXT1_CNTL, > i * hub->ctx_distance, tmp); > WREG32_SOC15_OFFSET(GC, GET_INST(GC, j), > diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v4_2_0.c > b/drivers/gpu/drm/amd/amdgpu/mmhub_v4_2_0.c > index 49b7f16a941f..f2c549737e02 100644 > --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v4_2_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v4_2_0.c > @@ -320,7 +320,7 @@ static void > mmhub_v4_2_0_mid_init_system_aperture_regs(struct amdgpu_device *ade > tmp = REG_SET_FIELD(tmp, MMVM_L2_PROTECTION_FAULT_CNTL2, > ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1); > tmp = REG_SET_FIELD(tmp, MMVM_L2_PROTECTION_FAULT_CNTL2, > - ENABLE_RETRY_FAULT_INTERRUPT, 0x1); > + ENABLE_RETRY_FAULT_INTERRUPT, > !adev->gmc.noretry); > WREG32_SOC15(MMHUB, GET_INST(MMHUB, i), > regMMVM_L2_PROTECTION_FAULT_CNTL2, tmp); > }
