From e20b98405cbcad522650ef21dbb77c207b7f464d Mon Sep 17 00:00:00 2001
From: John Clements <john.clements@amd.com>
Date: Wed, 29 Sep 2021 14:04:02 +0800
Subject: [PATCH 1/1] drm/amdgpu: resolve RAS query bug

clear error count when persistant harvesting is not enabled

Signed-off-by: John Clements <john.clements@amd.com>
Change-Id: I218ef679973db4896dc2a7f101a3e70e1dfafb63
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 8243f79a7c4e..767219b76dfd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -909,6 +909,13 @@ int amdgpu_ras_query_error_status(struct amdgpu_device *adev,
 				adev->sdma.funcs->query_ras_error_count(adev, i,
 									&err_data);
 		}
+
+		if (!amdgpu_persistent_edc_harvesting_supported(adev)) {
+			if (adev->sdma.funcs &&
+			    adev->sdma.funcs->reset_ras_error_count)
+			    adev->sdma.funcs->reset_ras_error_count(adev);
+		}
+
 		break;
 	case AMDGPU_RAS_BLOCK__GFX:
 		if (adev->gfx.ras_funcs &&
@@ -918,6 +925,13 @@ int amdgpu_ras_query_error_status(struct amdgpu_device *adev,
 		if (adev->gfx.ras_funcs &&
 		    adev->gfx.ras_funcs->query_ras_error_status)
 			adev->gfx.ras_funcs->query_ras_error_status(adev);
+
+		if (!amdgpu_persistent_edc_harvesting_supported(adev)) {
+			if (adev->gfx.ras_funcs &&
+			    adev->gfx.ras_funcs->reset_ras_error_count)
+			    adev->gfx.ras_funcs->reset_ras_error_count(adev);
+		}
+
 		break;
 	case AMDGPU_RAS_BLOCK__MMHUB:
 		if (adev->mmhub.ras_funcs &&
@@ -927,6 +941,13 @@ int amdgpu_ras_query_error_status(struct amdgpu_device *adev,
 		if (adev->mmhub.ras_funcs &&
 		    adev->mmhub.ras_funcs->query_ras_error_status)
 			adev->mmhub.ras_funcs->query_ras_error_status(adev);
+
+		if (!amdgpu_persistent_edc_harvesting_supported(adev)) {
+			if (adev->mmhub.ras_funcs &&
+			    adev->mmhub.ras_funcs->reset_ras_error_count)
+			    adev->mmhub.ras_funcs->reset_ras_error_count(adev);
+		}
+
 		break;
 	case AMDGPU_RAS_BLOCK__PCIE_BIF:
 		if (adev->nbio.ras_funcs &&
-- 
2.17.1

