@@ -2379,6 +2379,7 @@ static const struct mca_bank_ipid smu_v13_0_6_mca_ipid_table[AMDGPU_MCA_IP_COUNT
2379
2379
MCA_BANK_IPID (UMC , 0x96 , 0x0 ),
2380
2380
MCA_BANK_IPID (SMU , 0x01 , 0x1 ),
2381
2381
MCA_BANK_IPID (MP5 , 0x01 , 0x2 ),
2382
+ MCA_BANK_IPID (PCS_XGMI , 0x50 , 0x0 ),
2382
2383
};
2383
2384
2384
2385
static void mca_bank_entry_info_decode (struct mca_bank_entry * entry , struct mca_bank_info * info )
@@ -2482,6 +2483,22 @@ static int mca_umc_mca_get_err_count(const struct mca_ras_info *mca_ras, struct
2482
2483
return 0 ;
2483
2484
}
2484
2485
2486
+ static int mca_pcs_xgmi_mca_get_err_count (const struct mca_ras_info * mca_ras , struct amdgpu_device * adev ,
2487
+ enum amdgpu_mca_error_type type , struct mca_bank_entry * entry ,
2488
+ uint32_t * count )
2489
+ {
2490
+ u32 ext_error_code ;
2491
+
2492
+ ext_error_code = MCA_REG__STATUS__ERRORCODEEXT (entry -> regs [MCA_REG_IDX_STATUS ]);
2493
+
2494
+ if (type == AMDGPU_MCA_ERROR_TYPE_UE && ext_error_code == 0 )
2495
+ * count = 1 ;
2496
+ else if (type == AMDGPU_MCA_ERROR_TYPE_CE && ext_error_code == 6 )
2497
+ * count = 1 ;
2498
+
2499
+ return 0 ;
2500
+ }
2501
+
2485
2502
static bool mca_smu_check_error_code (struct amdgpu_device * adev , const struct mca_ras_info * mca_ras ,
2486
2503
uint32_t errcode )
2487
2504
{
@@ -2609,6 +2626,10 @@ static const struct mca_ras_info mca_ras_table[] = {
2609
2626
.err_code_count = ARRAY_SIZE (mmhub_err_codes ),
2610
2627
.get_err_count = mca_smu_mca_get_err_count ,
2611
2628
.bank_is_valid = mca_smu_bank_is_valid ,
2629
+ }, {
2630
+ .blkid = AMDGPU_RAS_BLOCK__XGMI_WAFL ,
2631
+ .ip = AMDGPU_MCA_IP_PCS_XGMI ,
2632
+ .get_err_count = mca_pcs_xgmi_mca_get_err_count ,
2612
2633
},
2613
2634
};
2614
2635
0 commit comments