drm/amdgpu: gfx support ras gpu reset
authorxinhui pan <xinhui.pan@amd.com>
Wed, 8 May 2019 14:36:10 +0000 (22:36 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 24 May 2019 17:20:50 +0000 (12:20 -0500)
request a gpu reset if ras return EAGAIN.
we will run late init again so it is ok to do nothing this time.

Signed-off-by: xinhui pan <xinhui.pan@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

index 14e671d3f079359ddaca957b93617d86583277c2..f88101f18409d34581ff67de17072d9879a48491 100644 (file)
@@ -3825,8 +3825,14 @@ static int gfx_v9_0_ecc_late_init(void *handle)
        **ras_if = ras_block;
 
        r = amdgpu_ras_feature_enable_on_boot(adev, *ras_if, 1);
-       if (r)
+       if (r) {
+               if (r == -EAGAIN) {
+                       amdgpu_ras_request_reset_on_boot(adev,
+                                       AMDGPU_RAS_BLOCK__GFX);
+                       r = 0;
+               }
                goto feature;
+       }
 
        ih_info.head = **ras_if;
        fs_info.head = **ras_if;
@@ -3859,7 +3865,7 @@ interrupt:
 feature:
        kfree(*ras_if);
        *ras_if = NULL;
-       return -EINVAL;
+       return r;
 }
 
 static int gfx_v9_0_late_init(void *handle)