From 27a3473610e91d7e439e873a0e366d6482c21d51 Mon Sep 17 00:00:00 2001 From: Ce Sun Date: Tue, 22 Sep 2026 22:13:45 +0800 Subject: [PATCH] drm/amdgpu : Update psp 13_0_15 ip block support for uniras Included psp_13_0_15 ip block for uniras Signed-off-by: Ce Sun Reviewed-by: Tao Zhou Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 3 ++- drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c | 1 + drivers/gpu/drm/amd/ras/core/ras_mp1.c | 1 + drivers/gpu/drm/amd/ras/core/ras_psp.c | 1 + .../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_eeprom_i2c.c | 1 + drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c | 11 +++++++---- 7 files changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c index 597f4dff945d..890792a94e09 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c @@ -3161,6 +3161,7 @@ static int amdgpu_discovery_set_ras_ip_blocks(struct amdgpu_device *adev) case IP_VERSION(13, 0, 6): case IP_VERSION(13, 0, 12): case IP_VERSION(13, 0, 14): + case IP_VERSION(13, 0, 15): case IP_VERSION(15, 0, 8): case IP_VERSION(15, 0, 3): amdgpu_device_ip_block_add(adev, &ras_v1_0_ip_block); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c index 6b2b8acdbf9b..47e852c15c36 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -3822,7 +3822,8 @@ int amdgpu_ras_block_late_init(struct amdgpu_device *adev, ras_obj->hw_ops->query_ras_error_status)) || amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 14) || amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 12) || - amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 6)) { + amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 6) || + amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 15)) { r = amdgpu_ras_sysfs_create(adev, ras_block); if (r) goto interrupt; diff --git a/drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c b/drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c index 1781d037ef13..fe0e35357af1 100644 --- a/drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c +++ b/drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c @@ -41,6 +41,7 @@ static const struct ras_eeprom_ops *ras_eeprom_mgr_get_ip_func( case IP_VERSION(13, 0, 6): case IP_VERSION(13, 0, 14): case IP_VERSION(13, 0, 12): + case IP_VERSION(13, 0, 15): mgr->eeprom_early_init_service_supported = false; return &ras_drv_eeprom_ops; case IP_VERSION(15, 0, 8): diff --git a/drivers/gpu/drm/amd/ras/core/ras_mp1.c b/drivers/gpu/drm/amd/ras/core/ras_mp1.c index 87e93943b51f..2a6adb2be645 100644 --- a/drivers/gpu/drm/amd/ras/core/ras_mp1.c +++ b/drivers/gpu/drm/amd/ras/core/ras_mp1.c @@ -34,6 +34,7 @@ static const struct ras_mp1_ip_func *ras_mp1_get_ip_funcs( case IP_VERSION(13, 0, 6): case IP_VERSION(13, 0, 14): case IP_VERSION(13, 0, 12): + case IP_VERSION(13, 0, 15): return &mp1_ras_func_v13_0; case IP_VERSION(15, 0, 8): case IP_VERSION(15, 0, 3): diff --git a/drivers/gpu/drm/amd/ras/core/ras_psp.c b/drivers/gpu/drm/amd/ras/core/ras_psp.c index 11019ee596e6..c16acf4b57f7 100644 --- a/drivers/gpu/drm/amd/ras/core/ras_psp.c +++ b/drivers/gpu/drm/amd/ras/core/ras_psp.c @@ -47,6 +47,7 @@ static const struct ras_psp_ip_func *ras_psp_get_ip_funcs( case IP_VERSION(13, 0, 6): case IP_VERSION(13, 0, 14): case IP_VERSION(13, 0, 12): + case IP_VERSION(13, 0, 15): return &ras_psp_v13_0; case IP_VERSION(15, 0, 3): return &ras_psp_v15_0_3; diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_eeprom_i2c.c b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_eeprom_i2c.c index a56d3116c5fd..5f550abd8dbf 100644 --- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_eeprom_i2c.c +++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_eeprom_i2c.c @@ -121,6 +121,7 @@ static int ras_eeprom_i2c_config(struct ras_core_context *ras_core, case IP_VERSION(13, 0, 10): case IP_VERSION(13, 0, 12): case IP_VERSION(13, 0, 14): + case IP_VERSION(13, 0, 15): cfg->eeprom_i2c_addr = EEPROM_I2C_MADDR_4; badpages_per_record = BAD_PAGE_NUM_PER_EEPROM_RECORD_V13; break; diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c index ef31477963c8..58a4d16bdeee 100644 --- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c +++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c @@ -148,6 +148,7 @@ static bool amdgpu_ras_mgr_eeprom_is_supported(struct amdgpu_device *adev) case IP_VERSION(13, 0, 6): case IP_VERSION(13, 0, 12): case IP_VERSION(13, 0, 14): + case IP_VERSION(13, 0, 15): return (adev->gmc.is_app_apu) ? false : true; default: return false; @@ -164,6 +165,7 @@ static int amdgpu_ras_mgr_init_mp1_config(struct amdgpu_device *adev, case IP_VERSION(13, 0, 6): case IP_VERSION(13, 0, 14): case IP_VERSION(13, 0, 12): + case IP_VERSION(13, 0, 15): case IP_VERSION(15, 0, 8): case IP_VERSION(15, 0, 3): mp1_cfg->mp1_sys_fn = &amdgpu_ras_mp1_sys_func; @@ -336,10 +338,11 @@ int amdgpu_ras_mgr_sw_init(struct amdgpu_device *adev, struct ras_module_param * if (param && !param->ras_feature_enable) return 0; else if (amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 14) || - amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 12) || - amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 6) || - amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(15, 0, 3) || - amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(15, 0, 8)) + amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 12) || + amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 15) || + amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 6) || + amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(15, 0, 3) || + amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(15, 0, 8)) con->uniras_enabled = true; else return 0;