Late uniras enable in amdgpu_ras_mgr_sw_init leads to xxx_err_count
sysfs node creation failure during NPS mode switching. Move the uniras
IP version check into amdgpu_ras_init to set uniras_enabled ahead
of sysfs node creation

Signed-off-by: Ce Sun <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c          | 11 +++++++++++
 drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c | 10 +---------
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index e300d951898d..8ade3da6f132 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -3595,6 +3595,17 @@ int amdgpu_ras_init(struct amdgpu_device *adev)
                goto release_con;
        }
 
+       switch (amdgpu_ip_version(adev, MP0_HWIP, 0)) {
+       case IP_VERSION(13, 0, 14):
+       case IP_VERSION(13, 0, 12):
+       case IP_VERSION(13, 0, 6):
+               con->uniras_enabled = true;
+               break;
+       default:
+               con->uniras_enabled = false;
+               break;
+       }
+
        con->update_channel_flag = false;
        con->features = 0;
        con->schema = 0;
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 b8b831a91bc7..6224c4921a42 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
@@ -327,15 +327,7 @@ static int amdgpu_ras_mgr_sw_init(struct amdgpu_ip_block 
*ip_block)
        struct amdgpu_ras_mgr *ras_mgr;
        int ret = 0;
 
-       /* Disabled by default */
-       con->uniras_enabled = false;
-
-       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) ||
-           adev->debug_enable_ras_aca)
-               con->uniras_enabled = true;
-       else
+       if (!con->uniras_enabled)
                return 0;
 
        ras_mgr = kzalloc(sizeof(*ras_mgr), GFP_KERNEL);
-- 
2.34.1

Reply via email to