aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
diff options
context:
space:
mode:
authorYang Wang <kevinyang.wang@amd.com>2024-04-18 15:46:00 +0800
committerAlex Deucher <alexander.deucher@amd.com>2024-04-30 09:58:41 -0400
commit76ad30f51aa0d1bd99f12658d4775a86df6e4282 (patch)
tree3912a2f2620c0ed6d1efa9168c87364cbe484f4f /drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
parent8fb20d9551368f0b1ef5b31fa0b4634f4be37157 (diff)
drm/amdgpu: add MCA smu cache support
v1: because SMU CE valid mca bank will be cleared after reading, this patch adds mca cache at the driver level to ensure that the mca bank is not lost. v2: refine amdgpu_mca_init/fini/reset() function name. v3: add mca_cache.lock support only add CE bank to mca bank cache. Signed-off-by: Yang Wang <kevinyang.wang@amd.com> Reviewed-by: Tao Zhou <tao.zhou1@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 1adc81a55734..0522533c9182 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -3629,6 +3629,13 @@ int amdgpu_ras_late_init(struct amdgpu_device *adev)
amdgpu_ras_set_aca_debug_mode(adev, false);
} else {
+ if (amdgpu_in_reset(adev))
+ r = amdgpu_mca_reset(adev);
+ else
+ r = amdgpu_mca_init(adev);
+ if (r)
+ return r;
+
amdgpu_ras_set_mca_debug_mode(adev, false);
}
@@ -3701,6 +3708,8 @@ int amdgpu_ras_fini(struct amdgpu_device *adev)
if (amdgpu_aca_is_enabled(adev))
amdgpu_aca_fini(adev);
+ else
+ amdgpu_mca_fini(adev);
WARN(AMDGPU_RAS_GET_FEATURES(con->features), "Feature mask is not cleared");