drm/amdgpu: Add RAS_POISON_READY host response message
authorVictor Skvortsov <victor.skvortsov@amd.com>
Sun, 21 Jan 2024 15:25:24 +0000 (10:25 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 25 Jan 2024 19:58:03 +0000 (14:58 -0500)
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.skvortsov@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h

index d0a018d..77f5b55 100644 (file)
@@ -170,6 +170,10 @@ send_request:
        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;
+               break;
        default:
                break;
        }
@@ -437,8 +441,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);
        }
 }
 
index d0221ce..1e8fd90 100644 (file)
@@ -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,
 };