Skip to content

Commit aedc92b

Browse files
Xiang Liualexdeucher
authored andcommitted
drm/amdgpu: Parse all deferred errors with UMC aca handle
We should only increase the deferred errors in UMC block. Signed-off-by: Xiang Liu <xiang.liu@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent cc11dff commit aedc92b

File tree

9 files changed

+14
-19
lines changed

9 files changed

+14
-19
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ static bool aca_bank_is_valid(struct aca_handle *handle, struct aca_bank *bank,
195195
{
196196
const struct aca_bank_ops *bank_ops = handle->bank_ops;
197197

198+
/* Parse all deferred errors with UMC aca handle */
199+
if (ACA_BANK_ERR_IS_DEFFERED(bank))
200+
return handle->hwip == ACA_HWIP_TYPE_UMC;
201+
198202
if (!aca_bank_hwip_is_matched(bank, handle->hwip))
199203
return false;
200204

drivers/gpu/drm/amd/amdgpu/amdgpu_aca.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,6 @@ struct ras_query_context;
8080
(ACA_REG__STATUS__POISON((bank)->regs[ACA_REG_IDX_STATUS]) || \
8181
ACA_REG__STATUS__DEFERRED((bank)->regs[ACA_REG_IDX_STATUS]))
8282

83-
#define ACA_BANK_ERR_CE_DE_DECODE(bank) \
84-
(ACA_BANK_ERR_IS_DEFFERED(bank) ? ACA_ERROR_TYPE_DEFERRED : \
85-
ACA_ERROR_TYPE_CE)
86-
87-
#define ACA_BANK_ERR_UE_DE_DECODE(bank) \
88-
(ACA_BANK_ERR_IS_DEFFERED(bank) ? ACA_ERROR_TYPE_DEFERRED : \
89-
ACA_ERROR_TYPE_UE)
90-
9183
enum aca_reg_idx {
9284
ACA_REG_IDX_CTL = 0,
9385
ACA_REG_IDX_STATUS = 1,

drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,7 @@ static int xgmi_v6_4_0_aca_bank_parser(struct aca_handle *handle, struct aca_ban
11721172
break;
11731173
case ACA_SMU_TYPE_CE:
11741174
count = ext_error_code == 6 ? count : 0ULL;
1175-
bank->aca_err_type = ACA_BANK_ERR_CE_DE_DECODE(bank);
1175+
bank->aca_err_type = ACA_ERROR_TYPE_CE;
11761176
ret = aca_error_cache_log_bank_error(handle, &info, bank->aca_err_type, count);
11771177
break;
11781178
default:

drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -867,15 +867,13 @@ static int gfx_v9_4_3_aca_bank_parser(struct aca_handle *handle,
867867

868868
switch (type) {
869869
case ACA_SMU_TYPE_UE:
870-
bank->aca_err_type = ACA_BANK_ERR_UE_DE_DECODE(bank);
870+
bank->aca_err_type = ACA_ERROR_TYPE_UE;
871871
ret = aca_error_cache_log_bank_error(handle, &info, bank->aca_err_type, 1ULL);
872872
break;
873873
case ACA_SMU_TYPE_CE:
874-
bank->aca_err_type = ACA_BANK_ERR_CE_DE_DECODE(bank);
874+
bank->aca_err_type = ACA_ERROR_TYPE_CE;
875875
ret = aca_error_cache_log_bank_error(handle, &info, bank->aca_err_type,
876-
(bank->aca_err_type == ACA_ERROR_TYPE_CE) ?
877-
ACA_REG__MISC0__ERRCNT(misc0) :
878-
1);
876+
ACA_REG__MISC0__ERRCNT(misc0));
879877
break;
880878
default:
881879
return -EINVAL;

drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1328,7 +1328,7 @@ static int jpeg_v4_0_3_aca_bank_parser(struct aca_handle *handle, struct aca_ban
13281328
1ULL);
13291329
break;
13301330
case ACA_SMU_TYPE_CE:
1331-
bank->aca_err_type = ACA_BANK_ERR_CE_DE_DECODE(bank);
1331+
bank->aca_err_type = ACA_ERROR_TYPE_CE;
13321332
ret = aca_error_cache_log_bank_error(handle, &info, bank->aca_err_type,
13331333
ACA_REG__MISC0__ERRCNT(misc0));
13341334
break;

drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,7 @@ static int mmhub_v1_8_aca_bank_parser(struct aca_handle *handle, struct aca_bank
751751
1ULL);
752752
break;
753753
case ACA_SMU_TYPE_CE:
754-
bank->aca_err_type = ACA_BANK_ERR_CE_DE_DECODE(bank);
754+
bank->aca_err_type = ACA_ERROR_TYPE_CE;
755755
ret = aca_error_cache_log_bank_error(handle, &info, bank->aca_err_type,
756756
ACA_REG__MISC0__ERRCNT(misc0));
757757
break;

drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2595,7 +2595,7 @@ static int sdma_v4_4_2_aca_bank_parser(struct aca_handle *handle, struct aca_ban
25952595
1ULL);
25962596
break;
25972597
case ACA_SMU_TYPE_CE:
2598-
bank->aca_err_type = ACA_BANK_ERR_CE_DE_DECODE(bank);
2598+
bank->aca_err_type = ACA_ERROR_TYPE_CE;
25992599
ret = aca_error_cache_log_bank_error(handle, &info, bank->aca_err_type,
26002600
ACA_REG__MISC0__ERRCNT(misc0));
26012601
break;

drivers/gpu/drm/amd/amdgpu/umc_v12_0.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ bool umc_v12_0_is_deferred_error(struct amdgpu_device *adev, uint64_t mc_umc_sta
8585

8686
return (amdgpu_ras_is_poison_mode_supported(adev) &&
8787
(REG_GET_FIELD(mc_umc_status, MCA_UMC_UMC0_MCUMC_STATUST0, Val) == 1) &&
88-
(REG_GET_FIELD(mc_umc_status, MCA_UMC_UMC0_MCUMC_STATUST0, Deferred) == 1));
88+
((REG_GET_FIELD(mc_umc_status, MCA_UMC_UMC0_MCUMC_STATUST0, Deferred) == 1) ||
89+
(REG_GET_FIELD(mc_umc_status, MCA_UMC_UMC0_MCUMC_STATUST0, Poison) == 1)));
8990
}
9091

9192
bool umc_v12_0_is_uncorrectable_error(struct amdgpu_device *adev, uint64_t mc_umc_status)

drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1965,7 +1965,7 @@ static int vcn_v4_0_3_aca_bank_parser(struct aca_handle *handle, struct aca_bank
19651965
1ULL);
19661966
break;
19671967
case ACA_SMU_TYPE_CE:
1968-
bank->aca_err_type = ACA_BANK_ERR_CE_DE_DECODE(bank);
1968+
bank->aca_err_type = ACA_ERROR_TYPE_CE;
19691969
ret = aca_error_cache_log_bank_error(handle, &info, bank->aca_err_type,
19701970
ACA_REG__MISC0__ERRCNT(misc0));
19711971
break;

0 commit comments

Comments
 (0)