From: Victor Skvortsov <victor.skvort...@amd.com>

In a non-FLR page avoidance scenario, the host driver will
provide the bad pages in the pf2vf exchange region.

Adding a new host response message to indicate when the
pf2vf exchange region has been updated.

Signed-off-by: Victor Skvortsov <victor.skvort...@amd.com>
Change-Id: I58d5d11d959d91ad5723d33fddb93570c259e245
---
 drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c | 5 +++++
 drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h | 1 +
 2 files changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c 
b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c
index d0a018da3c7a..c49bf87d4b0b 100644
--- a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c
+++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c
@@ -170,6 +170,9 @@ static int xgpu_nv_send_access_requests_with_param(struct 
amdgpu_device *adev,
        case IDH_REQ_GPU_INIT_DATA:
                event = IDH_REQ_GPU_INIT_DATA_READY;
                break;
+       case IDH_RAS_POISON:
+               if (data1 != 0)
+                       event = IDH_RAS_POISON_READY;
        default:
                break;
        }
@@ -437,8 +440,10 @@ static void xgpu_nv_ras_poison_handler(struct 
amdgpu_device *adev,
        if (amdgpu_ip_version(adev, UMC_HWIP, 0) < IP_VERSION(12, 0, 0)) {
                xgpu_nv_send_access_requests(adev, IDH_RAS_POISON);
        } else {
+               amdgpu_virt_fini_data_exchange(adev);
                xgpu_nv_send_access_requests_with_param(adev,
                                        IDH_RAS_POISON, block, 0, 0);
+               amdgpu_virt_init_data_exchange(adev);
        }
 }
 
diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h 
b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h
index d0221ce08769..1e8fd90cab43 100644
--- a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h
+++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h
@@ -51,6 +51,7 @@ enum idh_event {
        IDH_FAIL,
        IDH_QUERY_ALIVE,
        IDH_REQ_GPU_INIT_DATA_READY,
+       IDH_RAS_POISON_READY,
 
        IDH_TEXT_MESSAGE = 255,
 };
-- 
2.25.1

Reply via email to