Skip to content

Commit 86e8255

Browse files
Tao Zhoualexdeucher
authored andcommitted
drm/amdgpu: add JPEG 4.0 RAS poison consumption handling
Register related irq handler. Signed-off-by: Tao Zhou <[email protected]> Reviewed-by: Hawking Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent ea5309d commit 86e8255

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,18 @@ static int jpeg_v4_0_sw_init(void *handle)
8181
if (r)
8282
return r;
8383

84+
/* JPEG DJPEG POISON EVENT */
85+
r = amdgpu_irq_add_id(adev, SOC15_IH_CLIENTID_VCN,
86+
VCN_4_0__SRCID_DJPEG0_POISON, &adev->jpeg.inst->irq);
87+
if (r)
88+
return r;
89+
90+
/* JPEG EJPEG POISON EVENT */
91+
r = amdgpu_irq_add_id(adev, SOC15_IH_CLIENTID_VCN,
92+
VCN_4_0__SRCID_EJPEG0_POISON, &adev->jpeg.inst->irq);
93+
if (r)
94+
return r;
95+
8496
r = amdgpu_jpeg_sw_init(adev);
8597
if (r)
8698
return r;
@@ -170,6 +182,8 @@ static int jpeg_v4_0_hw_fini(void *handle)
170182
RREG32_SOC15(JPEG, 0, regUVD_JRBC_STATUS))
171183
jpeg_v4_0_set_powergating_state(adev, AMD_PG_STATE_GATE);
172184

185+
amdgpu_irq_put(adev, &adev->jpeg.inst->irq, 0);
186+
173187
return 0;
174188
}
175189

@@ -527,6 +541,10 @@ static int jpeg_v4_0_process_interrupt(struct amdgpu_device *adev,
527541
case VCN_4_0__SRCID__JPEG_DECODE:
528542
amdgpu_fence_process(&adev->jpeg.inst->ring_dec);
529543
break;
544+
case VCN_4_0__SRCID_DJPEG0_POISON:
545+
case VCN_4_0__SRCID_EJPEG0_POISON:
546+
amdgpu_jpeg_process_poison_irq(adev, source, entry);
547+
break;
530548
default:
531549
DRM_DEV_ERROR(adev->dev, "Unhandled interrupt: %d %d\n",
532550
entry->src_id, entry->src_data[0]);

0 commit comments

Comments
 (0)