]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: reset ras eeprom table when it is invalid
authorGangliang Xie <ganglxie@amd.com>
Tue, 17 Mar 2026 07:31:48 +0000 (15:31 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 30 Mar 2026 18:37:27 +0000 (14:37 -0400)
reset ras eeprom table when it is invalid

Signed-off-by: Gangliang Xie <ganglxie@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c

index 44fba4b6aa92a6eb5736e9b798112fe651fd4f74..cdf4909592d224c08ddf12d9ac63ac75800bd906 100644 (file)
@@ -1558,6 +1558,8 @@ int amdgpu_ras_eeprom_init(struct amdgpu_ras_eeprom_control *control)
        unsigned char buf[RAS_TABLE_HEADER_SIZE] = { 0 };
        struct amdgpu_ras_eeprom_table_header *hdr = &control->tbl_hdr;
        struct amdgpu_ras *ras = amdgpu_ras_get_context(adev);
+       int dev_var = adev->pdev->device & 0xF;
+       uint32_t vram_type = adev->gmc.vram_type;
        int res;
 
        if (amdgpu_ras_smu_eeprom_supported(adev))
@@ -1597,6 +1599,12 @@ int amdgpu_ras_eeprom_init(struct amdgpu_ras_eeprom_control *control)
                return amdgpu_ras_eeprom_reset_table(control);
        }
 
+       if (!(adev->flags & AMD_IS_APU) && (dev_var == 0x5) &&
+           (vram_type == AMDGPU_VRAM_TYPE_HBM3E) &&
+           (hdr->version < RAS_TABLE_VER_V3)) {
+               return amdgpu_ras_eeprom_reset_table(control);
+       }
+
        switch (hdr->version) {
        case RAS_TABLE_VER_V2_1:
        case RAS_TABLE_VER_V3: