drm/amdgpu: add RAS poison consumption handler for NV SRIOV
authorTao Zhou <tao.zhou1@amd.com>
Tue, 6 Dec 2022 09:04:31 +0000 (17:04 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 15 Dec 2022 17:18:19 +0000 (12:18 -0500)
Send handling request to host.

Signed-off-by: Tao Zhou <tao.zhou1@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 e07757eea7adf95bb43b1a330166b8e84a75468b..cae1aaa4ddb68cefc817b8c32a23d42ea077aea3 100644 (file)
@@ -426,6 +426,11 @@ void xgpu_nv_mailbox_put_irq(struct amdgpu_device *adev)
        amdgpu_irq_put(adev, &adev->virt.rcv_irq, 0);
 }
 
+static void xgpu_nv_ras_poison_handler(struct amdgpu_device *adev)
+{
+       xgpu_nv_send_access_requests(adev, IDH_RAS_POISON);
+}
+
 const struct amdgpu_virt_ops xgpu_nv_virt_ops = {
        .req_full_gpu   = xgpu_nv_request_full_gpu_access,
        .rel_full_gpu   = xgpu_nv_release_full_gpu_access,
@@ -433,4 +438,5 @@ const struct amdgpu_virt_ops xgpu_nv_virt_ops = {
        .reset_gpu = xgpu_nv_request_reset,
        .wait_reset = NULL,
        .trans_msg = xgpu_nv_mailbox_trans_msg,
+       .ras_poison_handler = xgpu_nv_ras_poison_handler,
 };
index 73887b0aa1d6e617e6c51a421710ebad017f4879..d0221ce087690e9ffaa8c24a0ccfee8226c0b80a 100644 (file)
@@ -39,6 +39,7 @@ enum idh_request {
 
        IDH_LOG_VF_ERROR        = 200,
        IDH_READY_TO_RESET      = 201,
+       IDH_RAS_POISON  = 202,
 };
 
 enum idh_event {