Skip to content

Commit 03399d0

Browse files
pldrcalexdeucher
authored andcommitted
drm/amdgpu: Add ring reset callback for JPEG3_0_0
Add ring reset function callback for JPEG3_0_0 to recover from job timeouts without a full gpu reset. Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Reviewed-by: Leo Liu <leo.liu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 74894ff commit 03399d0

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,10 @@ static int jpeg_v3_0_sw_init(struct amdgpu_ip_block *ip_block)
132132
if (r)
133133
return r;
134134

135-
return 0;
135+
adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
136+
r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
137+
138+
return r;
136139
}
137140

138141
/**
@@ -151,6 +154,8 @@ static int jpeg_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
151154
if (r)
152155
return r;
153156

157+
amdgpu_jpeg_sysfs_reset_mask_fini(adev);
158+
154159
r = amdgpu_jpeg_sw_fini(adev);
155160

156161
return r;
@@ -550,6 +555,13 @@ static int jpeg_v3_0_process_interrupt(struct amdgpu_device *adev,
550555
return 0;
551556
}
552557

558+
static int jpeg_v3_0_ring_reset(struct amdgpu_ring *ring, unsigned int vmid)
559+
{
560+
jpeg_v3_0_stop(ring->adev);
561+
jpeg_v3_0_start(ring->adev);
562+
return amdgpu_ring_test_helper(ring);
563+
}
564+
553565
static const struct amd_ip_funcs jpeg_v3_0_ip_funcs = {
554566
.name = "jpeg_v3_0",
555567
.early_init = jpeg_v3_0_early_init,
@@ -595,6 +607,7 @@ static const struct amdgpu_ring_funcs jpeg_v3_0_dec_ring_vm_funcs = {
595607
.emit_wreg = jpeg_v2_0_dec_ring_emit_wreg,
596608
.emit_reg_wait = jpeg_v2_0_dec_ring_emit_reg_wait,
597609
.emit_reg_write_reg_wait = amdgpu_ring_emit_reg_write_reg_wait_helper,
610+
.reset = jpeg_v3_0_ring_reset,
598611
};
599612

600613
static void jpeg_v3_0_set_dec_ring_funcs(struct amdgpu_device *adev)

0 commit comments

Comments
 (0)