OSDN Git Service

drm/amdgpu: support error reporting for sdma ip block
authorHawking Zhang <Hawking.Zhang@amd.com>
Wed, 8 Jan 2020 16:48:46 +0000 (00:48 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 14 Jan 2020 15:18:08 +0000 (10:18 -0500)
invoke sdma query_ras_error_count to get sdma single
bit error count

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c

index 96fc538..991c4ea 100644 (file)
@@ -686,6 +686,7 @@ int amdgpu_ras_error_query(struct amdgpu_device *adev,
 {
        struct ras_manager *obj = amdgpu_ras_find_obj(adev, &info->head);
        struct ras_err_data err_data = {0, 0, 0, NULL};
+       int i;
 
        if (!obj)
                return -EINVAL;
@@ -700,6 +701,13 @@ int amdgpu_ras_error_query(struct amdgpu_device *adev,
                if (adev->umc.funcs->query_ras_error_address)
                        adev->umc.funcs->query_ras_error_address(adev, &err_data);
                break;
+       case AMDGPU_RAS_BLOCK__SDMA:
+               if (adev->sdma.funcs->query_ras_error_count) {
+                       for (i = 0; i < adev->sdma.num_instances; i++)
+                               adev->sdma.funcs->query_ras_error_count(adev, i,
+                                                                       &err_data);
+               }
+               break;
        case AMDGPU_RAS_BLOCK__GFX:
                if (adev->gfx.funcs->query_ras_error_count)
                        adev->gfx.funcs->query_ras_error_count(adev, &err_data);