Skip to content

Commit 37c5763

Browse files
Yang Wangalexdeucher
authored andcommitted
drm/amd/pm: support new mca smu error code decoding
support new mca smu error code decoding from smu 85.86.0 for smu v13.0.6 Signed-off-by: Yang Wang <[email protected]> Reviewed-by: Hawking Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 78825df commit 37c5763

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
#define MCA_REG__STATUS__ERRORCODEEXT(x) MCA_REG_FIELD(x, 21, 16)
4747
#define MCA_REG__STATUS__ERRORCODE(x) MCA_REG_FIELD(x, 15, 0)
4848

49+
#define MCA_REG__SYND__ERRORINFORMATION(x) MCA_REG_FIELD(x, 17, 0)
50+
4951
enum amdgpu_mca_ip {
5052
AMDGPU_MCA_IP_UNKNOW = -1,
5153
AMDGPU_MCA_IP_PSP = 0,

drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2593,13 +2593,20 @@ static bool mca_gfx_smu_bank_is_valid(const struct mca_ras_info *mca_ras, struct
25932593
static bool mca_smu_bank_is_valid(const struct mca_ras_info *mca_ras, struct amdgpu_device *adev,
25942594
enum amdgpu_mca_error_type type, struct mca_bank_entry *entry)
25952595
{
2596+
struct smu_context *smu = adev->powerplay.pp_handle;
25962597
uint32_t errcode, instlo;
25972598

25982599
instlo = REG_GET_FIELD(entry->regs[MCA_REG_IDX_IPID], MCMP1_IPIDT0, InstanceIdLo);
25992600
if (instlo != 0x03b30400)
26002601
return false;
26012602

2602-
errcode = REG_GET_FIELD(entry->regs[MCA_REG_IDX_STATUS], MCMP1_STATUST0, ErrorCode);
2603+
if (!(adev->flags & AMD_IS_APU) && smu->smc_fw_version >= 0x00555600) {
2604+
errcode = MCA_REG__SYND__ERRORINFORMATION(entry->regs[MCA_REG_IDX_SYND]);
2605+
errcode &= 0xff;
2606+
} else {
2607+
errcode = REG_GET_FIELD(entry->regs[MCA_REG_IDX_STATUS], MCMP1_STATUST0, ErrorCode);
2608+
}
2609+
26032610
return mca_smu_check_error_code(adev, mca_ras, errcode);
26042611
}
26052612

0 commit comments

Comments
 (0)