summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
diff options
context:
space:
mode:
authorJohn Clements <john.clements@amd.com>2021-08-04 17:11:40 +0800
committerAlex Deucher <alexander.deucher@amd.com>2021-08-05 21:17:59 -0400
commit14fb496a84f15c1e462c8b7ff5563154174a6c5e (patch)
tree315fd1b93fa6fccd1360311dd7624d4b53ff9cd5 /drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
parent564e3dcf79628d0b61a6c354efcdcf3a9e68c35f (diff)
drm/amdgpu: set RAS EEPROM address from VBIOS
update to latest atombios fw table Signed-off-by: John Clements <john.clements@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
index d2e5b2567bc1..194590252bb9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
@@ -27,6 +27,7 @@
#include <linux/bits.h>
#include "atom.h"
#include "amdgpu_eeprom.h"
+#include "amdgpu_atomfirmware.h"
#include <linux/debugfs.h>
#include <linux/uaccess.h>
@@ -116,6 +117,22 @@ static bool __get_eeprom_i2c_addr(struct amdgpu_device *adev,
if (!control)
return false;
+ control->i2c_address = 0;
+
+ if (amdgpu_atomfirmware_ras_rom_addr(adev, (uint8_t*)&control->i2c_address))
+ {
+ if (control->i2c_address == 0xA0)
+ control->i2c_address = 0;
+ else if (control->i2c_address == 0xA8)
+ control->i2c_address = 0x40000;
+ else {
+ dev_warn(adev->dev, "RAS EEPROM I2C address not supported");
+ return false;
+ }
+
+ return true;
+ }
+
switch (adev->asic_type) {
case CHIP_VEGA20:
control->i2c_address = EEPROM_I2C_MADDR_VEGA20;