drm/amdgpu: add VCN poison consumption handler for SRIOV
authorTao Zhou <tao.zhou1@amd.com>
Mon, 26 Sep 2022 06:49:10 +0000 (14:49 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 15 Dec 2022 17:18:19 +0000 (12:18 -0500)
Inform host and let host handle consumption interrupt.

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/amdgpu_vcn.c

index b1622ac..c9cee1c 100644 (file)
@@ -1250,8 +1250,16 @@ int amdgpu_vcn_process_poison_irq(struct amdgpu_device *adev,
        if (!ras_if)
                return 0;
 
-       ih_data.head = *ras_if;
-       amdgpu_ras_interrupt_dispatch(adev, &ih_data);
+       if (!amdgpu_sriov_vf(adev)) {
+               ih_data.head = *ras_if;
+               amdgpu_ras_interrupt_dispatch(adev, &ih_data);
+       } else {
+               if (adev->virt.ops && adev->virt.ops->ras_poison_handler)
+                       adev->virt.ops->ras_poison_handler(adev);
+               else
+                       dev_warn(adev->dev,
+                               "No ras_poison_handler interface in SRIOV for VCN!\n");
+       }
 
        return 0;
 }