Skip to content

Commit 500c04d

Browse files
pldrcalexdeucher
authored andcommitted
drm/amdgpu: Add ring reset callback for JPEG2_0_0
Add ring reset function callback for JPEG2_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 09e24a0 commit 500c04d

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,10 @@ static int jpeg_v2_0_sw_init(struct amdgpu_ip_block *ip_block)
118118
if (r)
119119
return r;
120120

121-
return 0;
121+
adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
122+
r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
123+
124+
return r;
122125
}
123126

124127
/**
@@ -137,6 +140,8 @@ static int jpeg_v2_0_sw_fini(struct amdgpu_ip_block *ip_block)
137140
if (r)
138141
return r;
139142

143+
amdgpu_jpeg_sysfs_reset_mask_fini(adev);
144+
140145
r = amdgpu_jpeg_sw_fini(adev);
141146

142147
return r;
@@ -759,6 +764,13 @@ static int jpeg_v2_0_process_interrupt(struct amdgpu_device *adev,
759764
return 0;
760765
}
761766

767+
static int jpeg_v2_0_ring_reset(struct amdgpu_ring *ring, unsigned int vmid)
768+
{
769+
jpeg_v2_0_stop(ring->adev);
770+
jpeg_v2_0_start(ring->adev);
771+
return amdgpu_ring_test_helper(ring);
772+
}
773+
762774
static const struct amd_ip_funcs jpeg_v2_0_ip_funcs = {
763775
.name = "jpeg_v2_0",
764776
.early_init = jpeg_v2_0_early_init,
@@ -804,6 +816,7 @@ static const struct amdgpu_ring_funcs jpeg_v2_0_dec_ring_vm_funcs = {
804816
.emit_wreg = jpeg_v2_0_dec_ring_emit_wreg,
805817
.emit_reg_wait = jpeg_v2_0_dec_ring_emit_reg_wait,
806818
.emit_reg_write_reg_wait = amdgpu_ring_emit_reg_write_reg_wait_helper,
819+
.reset = jpeg_v2_0_ring_reset,
807820
};
808821

809822
static void jpeg_v2_0_set_dec_ring_funcs(struct amdgpu_device *adev)

0 commit comments

Comments
 (0)