]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amdgpu: add gfx v11_0_3 fed irq handling for sriov
authorYiPeng Chai <YiPeng.Chai@amd.com>
Tue, 11 Apr 2023 02:27:12 +0000 (10:27 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 13 Apr 2023 04:14:33 +0000 (00:14 -0400)
Add gfx v11_0_3 fed irq handling for sriov.

Signed-off-by: YiPeng Chai <YiPeng.Chai@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.c

index b07a72ca25d9e7b501e1366ff6c56dadbf5d155b..068b9586a223e004a183f335806a985ae14b0080 100644 (file)
@@ -62,10 +62,18 @@ static int gfx_v11_0_3_rlc_gc_fed_irq(struct amdgpu_device *adev,
                return -EINVAL;
        }
 
-       ih_data.head = *ras_if;
-
        dev_warn(adev->dev, "RLC %s FED IRQ\n", ras_if->name);
-       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 %s!\n", ras_if->name);
+       }
 
        return 0;
 }