drm/amdgpu: gmc support ras gpu reset
authorxinhui pan <xinhui.pan@amd.com>
Wed, 8 May 2019 14:32:34 +0000 (22:32 +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/gmc_v9_0.c

index 3fd79e07944db131d0b6a2b8e9a004e8b44e0528..19f7cc1d51c343145d2f3fb2f7b1d6d799801c13 100644 (file)
@@ -696,8 +696,14 @@ static int gmc_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__UMC);
+                       r = 0;
+               }
                goto feature;
+       }
 
        ih_info.head = **ras_if;
        fs_info.head = **ras_if;
@@ -730,7 +736,7 @@ interrupt:
 feature:
        kfree(*ras_if);
        *ras_if = NULL;
-       return -EINVAL;
+       return r;
 }