[PATCH] drm/amdgpu: Update IPID value for bad page threshold CPER

Zhang, Hawking Hawking.Zhang at amd.com
Thu Jul 24 06:25:13 UTC 2025


[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by: Hawking Zhang <Hawking.Zhang at amd.com>

Regards,
Hawking
-----Original Message-----
From: Liu, Xiang(Dean) <Xiang.Liu at amd.com>
Sent: Wednesday, July 23, 2025 14:41
To: amd-gfx at lists.freedesktop.org
Cc: Zhang, Hawking <Hawking.Zhang at amd.com>; Liu, Xiang(Dean) <Xiang.Liu at amd.com>
Subject: [PATCH] drm/amdgpu: Update IPID value for bad page threshold CPER

Update the IPID register value for bad page threshold CPER according to the latest definition.

Signed-off-by: Xiang Liu <xiang.liu at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c
index 15dde1f50328..d16267868adb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c
@@ -206,6 +206,7 @@ int amdgpu_cper_entry_fill_bad_page_threshold_section(struct amdgpu_device *adev  {
        struct cper_sec_desc *section_desc;
        struct cper_sec_nonstd_err *section;
+       uint32_t socket_id;

        section_desc = (struct cper_sec_desc *)((uint8_t *)hdr + SEC_DESC_OFFSET(idx));
        section = (struct cper_sec_nonstd_err *)((uint8_t *)hdr + @@ -224,6 +225,9 @@ int amdgpu_cper_entry_fill_bad_page_threshold_section(struct amdgpu_device *adev
        section->ctx.reg_arr_size = sizeof(section->ctx.reg_dump);

        /* Hardcoded Reg dump for bad page threshold CPER */
+       socket_id = (adev->smuio.funcs && adev->smuio.funcs->get_socket_id) ?
+                               adev->smuio.funcs->get_socket_id(adev) :
+                               0;
        section->ctx.reg_dump[CPER_ACA_REG_CTL_LO]    = 0x1;
        section->ctx.reg_dump[CPER_ACA_REG_CTL_HI]    = 0x0;
        section->ctx.reg_dump[CPER_ACA_REG_STATUS_LO] = 0x137; @@ -234,8 +238,8 @@ int amdgpu_cper_entry_fill_bad_page_threshold_section(struct amdgpu_device *adev
        section->ctx.reg_dump[CPER_ACA_REG_MISC0_HI]  = 0x0;
        section->ctx.reg_dump[CPER_ACA_REG_CONFIG_LO] = 0x2;
        section->ctx.reg_dump[CPER_ACA_REG_CONFIG_HI] = 0x1ff;
-       section->ctx.reg_dump[CPER_ACA_REG_IPID_LO]   = 0x0;
-       section->ctx.reg_dump[CPER_ACA_REG_IPID_HI]   = 0x96;
+       section->ctx.reg_dump[CPER_ACA_REG_IPID_LO]   = (socket_id / 4) & 0x01;
+       section->ctx.reg_dump[CPER_ACA_REG_IPID_HI]   = 0x096 | (((socket_id % 4) & 0x3) << 12);
        section->ctx.reg_dump[CPER_ACA_REG_SYND_LO]   = 0x0;
        section->ctx.reg_dump[CPER_ACA_REG_SYND_HI]   = 0x0;

--
2.34.1



More information about the amd-gfx mailing list