drm/amdgpu: set error query ready after all IPs late init
authorDennis Li <Dennis.Li@amd.com>
Wed, 22 Apr 2020 04:22:54 +0000 (12:22 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 22 Apr 2020 22:11:49 +0000 (18:11 -0400)
If set error query ready in amdgpu_ras_late_init, which will
cause some IP blocks aren't initialized, but their error query
is ready.

Signed-off-by: Dennis Li <Dennis.Li@amd.com>
Reviewed-by: Guchun Chen <guchun.chen@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_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c

index 1e4527c..f9b315e 100644 (file)
@@ -2216,6 +2216,8 @@ static int amdgpu_device_ip_late_init(struct amdgpu_device *adev)
                adev->ip_blocks[i].status.late_initialized = true;
        }
 
+       amdgpu_ras_set_error_query_ready(adev, true);
+
        amdgpu_device_set_cg_state(adev, AMD_CG_STATE_GATE);
        amdgpu_device_set_pg_state(adev, AMD_PG_STATE_GATE);
 
index 68b82f7..8b14aee 100644 (file)
@@ -1921,10 +1921,8 @@ int amdgpu_ras_late_init(struct amdgpu_device *adev,
        }
 
        /* in resume phase, no need to create ras fs node */
-       if (adev->in_suspend || adev->in_gpu_reset) {
-               amdgpu_ras_set_error_query_ready(adev, true);
+       if (adev->in_suspend || adev->in_gpu_reset)
                return 0;
-       }
 
        if (ih_info->cb) {
                r = amdgpu_ras_interrupt_add_handler(adev, ih_info);
@@ -1936,8 +1934,6 @@ int amdgpu_ras_late_init(struct amdgpu_device *adev,
        if (r)
                goto sysfs;
 
-       amdgpu_ras_set_error_query_ready(adev, true);
-
        return 0;
 cleanup:
        amdgpu_ras_sysfs_remove(adev, ras_block);