From: Mukul Joshi <[email protected]> Add the UTCL2 retry fault interrupt for both GCVM and MMVM for GFX 12.1.
Signed-off-by: Mukul Joshi <[email protected]> Reviewed-by: Philip Yang <[email protected]> Signed-off-by: Alex Deucher <[email protected]> --- drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 19 +++++++++++++++++-- .../amd/include/ivsrcid/vmc/irqsrcs_vmc_1_0.h | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c index efc519112ac45..1b1e2ddbc600a 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c @@ -656,6 +656,7 @@ static int gmc_v12_0_early_init(struct amdgpu_ip_block *ip_block) adev->gmc.private_aperture_start = 0x1000000000000000ULL; adev->gmc.private_aperture_end = adev->gmc.private_aperture_start + (4ULL << 30) - 1; + adev->gmc.noretry_flags = AMDGPU_VM_NORETRY_FLAGS_TF; return 0; } @@ -822,14 +823,28 @@ static int gmc_v12_0_sw_init(struct amdgpu_ip_block *ip_block) if (r) return r; - if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(12, 1, 0)) + if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(12, 1, 0)) { r = amdgpu_irq_add_id(adev, SOC21_IH_CLIENTID_UTCL2, UTCL2_1_0__SRCID__FAULT, &adev->gmc.vm_fault); - else + if (r) + return r; + /* Add GCVM UTCL2 Retry fault */ + r = amdgpu_irq_add_id(adev, SOC21_IH_CLIENTID_UTCL2, + UTCL2_1_0__SRCID__RETRY, + &adev->gmc.vm_fault); + if (r) + return r; + + /* Add MMVM UTCL2 Retry fault */ + r = amdgpu_irq_add_id(adev, SOC21_IH_CLIENTID_VMC, + VMC_1_0__SRCID__VM_RETRY, + &adev->gmc.vm_fault); + } else { r = amdgpu_irq_add_id(adev, SOC21_IH_CLIENTID_GFX, UTCL2_1_0__SRCID__FAULT, &adev->gmc.vm_fault); + } if (r) return r; diff --git a/drivers/gpu/drm/amd/include/ivsrcid/vmc/irqsrcs_vmc_1_0.h b/drivers/gpu/drm/amd/include/ivsrcid/vmc/irqsrcs_vmc_1_0.h index d130936c99890..22075805e95c4 100644 --- a/drivers/gpu/drm/amd/include/ivsrcid/vmc/irqsrcs_vmc_1_0.h +++ b/drivers/gpu/drm/amd/include/ivsrcid/vmc/irqsrcs_vmc_1_0.h @@ -28,10 +28,12 @@ #define VMC_1_0__SRCID__VM_FAULT 0 +#define VMC_1_0__SRCID__VM_RETRY 1 #define VMC_1_0__SRCID__VM_CONTEXT0_ALL 256 #define VMC_1_0__SRCID__VM_CONTEXT1_ALL 257 #define UTCL2_1_0__SRCID__FAULT 0 /* UTC L2 has encountered a fault or retry scenario */ +#define UTCL2_1_0__SRCID__RETRY 1 /* UTC L2 has encountered a retry scenario (GFX12.1) */ #endif /* __IRQSRCS_VMC_1_0_H__ */ -- 2.51.1
