Why:
    [13014.890792] Call Trace:
    [13014.890793]  <TASK>
    [13014.890795]  ? show_trace_log_lvl+0x1d6/0x2ea
    [13014.890799]  ? show_trace_log_lvl+0x1d6/0x2ea
    [13014.890800]  ? vcn_v5_0_1_hw_fini+0xe9/0x110 [amdgpu]
    [13014.890872]  ? show_regs.part.0+0x23/0x29
    [13014.890873]  ? show_regs.cold+0x8/0xd
    [13014.890874]  ? amdgpu_irq_put+0xc6/0xe0 [amdgpu]
    [13014.890934]  ? __warn+0x8c/0x100
    [13014.890936]  ? amdgpu_irq_put+0xc6/0xe0 [amdgpu]
    [13014.890995]  ? report_bug+0xa4/0xd0
    [13014.890999]  ? handle_bug+0x39/0x90
    [13014.891001]  ? exc_invalid_op+0x19/0x70
    [13014.891003]  ? asm_exc_invalid_op+0x1b/0x20
    [13014.891005]  ? amdgpu_irq_put+0xc6/0xe0 [amdgpu]
    [13014.891065]  ? amdgpu_irq_put+0x63/0xe0 [amdgpu]
    [13014.891124]  vcn_v5_0_1_hw_fini+0xe9/0x110 [amdgpu]
    [13014.891189]  amdgpu_ip_block_hw_fini+0x3b/0x78 [amdgpu]
    [13014.891309]  amdgpu_device_fini_hw+0x3c1/0x479 [amdgpu]
How:
    Add omitted vcn poison irq get call.

Signed-off-by: Stanley.Yang <stanley.y...@amd.com>
Reviewed-by: Hawking Zhang <hawking.zh...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c | 10 +++++-----
 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c  |  7 +++++++
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c 
b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c
index af4f562db32b..51b9148626fc 100644
--- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c
+++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c
@@ -1069,6 +1069,11 @@ static int jpeg_v5_0_1_ras_late_init(struct 
amdgpu_device *adev, struct ras_comm
        if (r)
                return r;
 
+       r = amdgpu_ras_bind_aca(adev, AMDGPU_RAS_BLOCK__JPEG,
+                               &jpeg_v5_0_1_aca_info, NULL);
+       if (r)
+               goto late_fini;
+
        if (amdgpu_ras_is_supported(adev, ras_block->block) &&
                adev->jpeg.inst->ras_poison_irq.funcs) {
                r = amdgpu_irq_get(adev, &adev->jpeg.inst->ras_poison_irq, 0);
@@ -1076,11 +1081,6 @@ static int jpeg_v5_0_1_ras_late_init(struct 
amdgpu_device *adev, struct ras_comm
                        goto late_fini;
        }
 
-       r = amdgpu_ras_bind_aca(adev, AMDGPU_RAS_BLOCK__JPEG,
-                               &jpeg_v5_0_1_aca_info, NULL);
-       if (r)
-               goto late_fini;
-
        return 0;
 
 late_fini:
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c
index d788898808db..0333a2833b2e 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c
@@ -1611,6 +1611,13 @@ static int vcn_v5_0_1_ras_late_init(struct amdgpu_device 
*adev, struct ras_commo
        if (r)
                goto late_fini;
 
+       if (amdgpu_ras_is_supported(adev, ras_block->block) &&
+               adev->vcn.inst->ras_poison_irq.funcs) {
+               r = amdgpu_irq_get(adev, &adev->vcn.inst->ras_poison_irq, 0);
+               if (r)
+                       goto late_fini;
+       }
+
        return 0;
 
 late_fini:
-- 
2.25.1

Reply via email to