drm/amdgpu: Add support for RAS table at 0x40000
authorLuben Tuikov <luben.tuikov@amd.com>
Tue, 15 Nov 2022 05:36:03 +0000 (00:36 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 17 Nov 2022 23:07:33 +0000 (18:07 -0500)
Add support for RAS table at I2C EEPROM address of 0x40000, since on some
ASICs it is not at 0, but at 0x40000.

Cc: Alex Deucher <Alexander.Deucher@amd.com>
Cc: Kent Russell <kent.russell@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Tested-by: Kent Russell <kent.russell@amd.com>
Reviewed-by: Kent Russell <kent.russell@amd.com>
Reviewed-by: Alex Deucher <Alexander.Deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c

index f63bd31..2d9f3f4 100644 (file)
@@ -157,6 +157,7 @@ static bool __get_eeprom_i2c_addr_ip_discovery(struct amdgpu_device *adev,
 static bool __get_eeprom_i2c_addr(struct amdgpu_device *adev,
                                  struct amdgpu_ras_eeprom_control *control)
 {
+       struct atom_context *atom_ctx = adev->mode_info.atom_context;
        u8 i2c_addr;
 
        if (!control)
@@ -190,7 +191,11 @@ static bool __get_eeprom_i2c_addr(struct amdgpu_device *adev,
                break;
 
        case CHIP_ALDEBARAN:
-               control->i2c_address = EEPROM_I2C_MADDR_0;
+               if (strnstr(atom_ctx->vbios_version, "D673",
+                           sizeof(atom_ctx->vbios_version)))
+                       control->i2c_address = EEPROM_I2C_MADDR_4;
+               else
+                       control->i2c_address = EEPROM_I2C_MADDR_0;
                break;
 
        case CHIP_IP_DISCOVERY: