drm/amdgpu: check RAS irq existence for VCN/JPEG
authorTao Zhou <tao.zhou1@amd.com>
Wed, 21 Jun 2023 02:30:43 +0000 (10:30 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 30 Jun 2023 17:11:35 +0000 (13:11 -0400)
No RAS irq is allowed.

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_jpeg.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c

index 3add4b4..2ff2897 100644 (file)
@@ -255,7 +255,8 @@ int amdgpu_jpeg_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *
 
        if (amdgpu_ras_is_supported(adev, ras_block->block)) {
                for (i = 0; i < adev->jpeg.num_jpeg_inst; ++i) {
-                       if (adev->jpeg.harvest_config & (1 << i))
+                       if (adev->jpeg.harvest_config & (1 << i) ||
+                           !adev->jpeg.inst[i].ras_poison_irq.funcs)
                                continue;
 
                        r = amdgpu_irq_get(adev, &adev->jpeg.inst[i].ras_poison_irq, 0);
index acbef1a..ae455aa 100644 (file)
@@ -1198,7 +1198,8 @@ int amdgpu_vcn_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *r
 
        if (amdgpu_ras_is_supported(adev, ras_block->block)) {
                for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
-                       if (adev->vcn.harvest_config & (1 << i))
+                       if (adev->vcn.harvest_config & (1 << i) ||
+                           !adev->vcn.inst[i].ras_poison_irq.funcs)
                                continue;
 
                        r = amdgpu_irq_get(adev, &adev->vcn.inst[i].ras_poison_irq, 0);