Drop the helpers and move all of the logic into the common code. The reset callbacks just reset the ring. All of the other logic (reemit, fence error handling, etc.) is handled in the common code.
Signed-off-by: Alex Deucher <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 15 --------------- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 4 ---- drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c | 4 +--- drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 8 ++------ drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 8 ++------ drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c | 8 ++------ drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 8 ++------ drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 5 +---- drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 3 +-- drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 3 +-- drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c | 3 +-- drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c | 3 +-- drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c | 3 +-- drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c | 3 +-- drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c | 3 +-- drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c | 3 +-- drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c | 3 +-- drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 4 +--- drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 4 +--- drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 4 +--- drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c | 4 +--- drivers/gpu/drm/amd/amdgpu/sdma_v7_1.c | 4 +--- drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 3 +-- drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 4 +--- drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c | 3 +-- drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c | 3 +-- drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c | 4 +--- 28 files changed, 31 insertions(+), 95 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c index 887bfd40b9bfa..69161a6c3ce91 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c @@ -168,6 +168,8 @@ static enum drm_gpu_sched_stat amdgpu_job_timedout(struct drm_sched_job *s_job) s_job->sched->name); /* Stop the scheduler to prevent anybody else from touching the ring buffer. */ drm_sched_wqueue_stop(&ring->sched); + if (!ring->all_instance_rings_reset) + amdgpu_fence_driver_update_timedout_fence_state(job->hw_fence); r = amdgpu_ring_reset(ring, job->vmid, job->hw_fence); if (!r) r = amdgpu_job_reemit_jobs(s_job); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c index 3a031649f6c97..be14afc88b3c0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c @@ -833,21 +833,6 @@ bool amdgpu_ring_sched_ready(struct amdgpu_ring *ring) return true; } -void amdgpu_ring_reset_helper_begin(struct amdgpu_ring *ring, - struct amdgpu_fence *guilty_fence) -{ - /* set an error on all fences from the context */ - if (guilty_fence) - amdgpu_fence_driver_update_timedout_fence_state(guilty_fence); -} - -int amdgpu_ring_reset_helper_end(struct amdgpu_ring *ring, - struct amdgpu_fence *guilty_fence) -{ - /* verify that the ring is functional */ - return amdgpu_ring_test_ring(ring); -} - bool amdgpu_ring_is_reset_type_supported(struct amdgpu_ring *ring, u32 reset_type) { diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h index e935159a61a3f..314f06cf3dbb3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h @@ -573,10 +573,6 @@ int amdgpu_ib_pool_init(struct amdgpu_device *adev); void amdgpu_ib_pool_fini(struct amdgpu_device *adev); int amdgpu_ib_ring_tests(struct amdgpu_device *adev); bool amdgpu_ring_sched_ready(struct amdgpu_ring *ring); -void amdgpu_ring_reset_helper_begin(struct amdgpu_ring *ring, - struct amdgpu_fence *guilty_fence); -int amdgpu_ring_reset_helper_end(struct amdgpu_ring *ring, - struct amdgpu_fence *guilty_fence); bool amdgpu_ring_is_reset_type_supported(struct amdgpu_ring *ring, u32 reset_type); void amdgpu_ring_save_state(struct amdgpu_ring *ring, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c index 54ee78c034cdb..e1bcf8a5a36d6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c @@ -911,8 +911,6 @@ static int vpe_ring_reset(struct amdgpu_ring *ring, struct amdgpu_device *adev = ring->adev; int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - r = amdgpu_device_ip_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VPE, AMD_PG_STATE_GATE); if (r) @@ -922,7 +920,7 @@ static int vpe_ring_reset(struct amdgpu_ring *ring, if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static ssize_t amdgpu_get_vpe_reset_mask(struct device *dev, diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c index e0e125eef9ac5..73f709fe293d7 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c @@ -9517,8 +9517,6 @@ static int gfx_v10_0_reset_kgq(struct amdgpu_ring *ring, if (!kiq->pmf || !kiq->pmf->kiq_unmap_queues) return -EINVAL; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - spin_lock_irqsave(&kiq->ring_lock, flags); if (amdgpu_ring_alloc(kiq_ring, 5 + 7 + 7)) { @@ -9566,7 +9564,7 @@ static int gfx_v10_0_reset_kgq(struct amdgpu_ring *ring, if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static int gfx_v10_0_reset_kcq(struct amdgpu_ring *ring, @@ -9582,8 +9580,6 @@ static int gfx_v10_0_reset_kcq(struct amdgpu_ring *ring, if (!kiq->pmf || !kiq->pmf->kiq_unmap_queues) return -EINVAL; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - spin_lock_irqsave(&kiq->ring_lock, flags); if (amdgpu_ring_alloc(kiq_ring, kiq->pmf->unmap_queues_size)) { @@ -9636,7 +9632,7 @@ static int gfx_v10_0_reset_kcq(struct amdgpu_ring *ring, if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static void gfx_v10_ip_print(struct amdgpu_ip_block *ip_block, struct drm_printer *p) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c index cc9ac87c5be02..8019cac16a181 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c @@ -6833,8 +6833,6 @@ static int gfx_v11_0_reset_kgq(struct amdgpu_ring *ring, struct amdgpu_device *adev = ring->adev; int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, false, 0); if (r) { @@ -6856,7 +6854,7 @@ static int gfx_v11_0_reset_kgq(struct amdgpu_ring *ring, return r; } - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static int gfx_v11_0_reset_compute_pipe(struct amdgpu_ring *ring) @@ -6996,8 +6994,6 @@ static int gfx_v11_0_reset_kcq(struct amdgpu_ring *ring, struct amdgpu_device *adev = ring->adev; int r = 0; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, true, 0); if (r) { dev_warn(adev->dev, "fail(%d) to reset kcq and try pipe reset\n", r); @@ -7017,7 +7013,7 @@ static int gfx_v11_0_reset_kcq(struct amdgpu_ring *ring, return r; } - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static void gfx_v11_ip_print(struct amdgpu_ip_block *ip_block, struct drm_printer *p) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c index cbe175145286b..0afca15c5cd15 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c @@ -5308,8 +5308,6 @@ static int gfx_v12_0_reset_kgq(struct amdgpu_ring *ring, struct amdgpu_device *adev = ring->adev; int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, false, 0); if (r) { dev_warn(adev->dev, "reset via MES failed and try pipe reset %d\n", r); @@ -5330,7 +5328,7 @@ static int gfx_v12_0_reset_kgq(struct amdgpu_ring *ring, return r; } - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static int gfx_v12_0_reset_compute_pipe(struct amdgpu_ring *ring) @@ -5423,8 +5421,6 @@ static int gfx_v12_0_reset_kcq(struct amdgpu_ring *ring, struct amdgpu_device *adev = ring->adev; int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, true, 0); if (r) { dev_warn(adev->dev, "fail(%d) to reset kcq and try pipe reset\n", r); @@ -5444,7 +5440,7 @@ static int gfx_v12_0_reset_kcq(struct amdgpu_ring *ring, return r; } - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static void gfx_v12_0_ring_begin_use(struct amdgpu_ring *ring) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c index 07fe959abe0d7..f5d8e7cb78f04 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c @@ -7211,8 +7211,6 @@ static int gfx_v9_0_reset_kgq(struct amdgpu_ring *ring, u32 tmp; int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - spin_lock_irqsave(&kiq->ring_lock, flags); if (amdgpu_ring_alloc(kiq_ring, 5)) { @@ -7261,7 +7259,7 @@ static int gfx_v9_0_reset_kgq(struct amdgpu_ring *ring, if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static int gfx_v9_0_reset_kcq(struct amdgpu_ring *ring, @@ -7277,8 +7275,6 @@ static int gfx_v9_0_reset_kcq(struct amdgpu_ring *ring, if (!kiq->pmf || !kiq->pmf->kiq_unmap_queues) return -EINVAL; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - spin_lock_irqsave(&kiq->ring_lock, flags); if (amdgpu_ring_alloc(kiq_ring, kiq->pmf->unmap_queues_size)) { @@ -7334,7 +7330,7 @@ static int gfx_v9_0_reset_kcq(struct amdgpu_ring *ring, DRM_ERROR("fail to remap queue\n"); return r; } - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static void gfx_v9_ip_print(struct amdgpu_ip_block *ip_block, struct drm_printer *p) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c index fb731e877c99c..f26569ca03d51 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c @@ -3560,8 +3560,6 @@ static int gfx_v9_4_3_reset_kcq(struct amdgpu_ring *ring, if (!kiq->pmf || !kiq->pmf->kiq_unmap_queues) return -EINVAL; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - spin_lock_irqsave(&kiq->ring_lock, flags); if (amdgpu_ring_alloc(kiq_ring, kiq->pmf->unmap_queues_size)) { @@ -3624,8 +3622,7 @@ static int gfx_v9_4_3_reset_kcq(struct amdgpu_ring *ring, goto pipe_reset; } - - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } enum amdgpu_gfx_cp_ras_mem_id { diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c index 9fe8d10ab2705..9f3e042e13745 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c @@ -772,14 +772,13 @@ static int jpeg_v2_0_ring_reset(struct amdgpu_ring *ring, { int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = jpeg_v2_0_stop(ring->adev); if (r) return r; r = jpeg_v2_0_start(ring->adev); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v2_0_ip_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c index 20983f126b490..0db65c58b67a8 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c @@ -650,10 +650,9 @@ static int jpeg_v2_5_ring_reset(struct amdgpu_ring *ring, unsigned int vmid, struct amdgpu_fence *timedout_fence) { - amdgpu_ring_reset_helper_begin(ring, timedout_fence); jpeg_v2_5_stop_inst(ring->adev, ring->me); jpeg_v2_5_start_inst(ring->adev, ring->me); - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v2_5_ip_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c index 98f5e0622bc58..f8e09bbf7ff1b 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c @@ -564,14 +564,13 @@ static int jpeg_v3_0_ring_reset(struct amdgpu_ring *ring, { int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = jpeg_v3_0_stop(ring->adev); if (r) return r; r = jpeg_v3_0_start(ring->adev); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v3_0_ip_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c index 0bd83820dd20c..c7b0b1773d3e5 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c @@ -729,14 +729,13 @@ static int jpeg_v4_0_ring_reset(struct amdgpu_ring *ring, { int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = jpeg_v4_0_stop(ring->adev); if (r) return r; r = jpeg_v4_0_start(ring->adev); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v4_0_ip_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c index 50ed7fb0e941c..daddfbf6e2d8f 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c @@ -1145,10 +1145,9 @@ static int jpeg_v4_0_3_ring_reset(struct amdgpu_ring *ring, unsigned int vmid, struct amdgpu_fence *timedout_fence) { - amdgpu_ring_reset_helper_begin(ring, timedout_fence); jpeg_v4_0_3_core_stall_reset(ring); jpeg_v4_0_3_start_jrbc(ring); - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v4_0_3_ip_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c index 54fd9c800c40a..96b8cbba382b0 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c @@ -774,14 +774,13 @@ static int jpeg_v4_0_5_ring_reset(struct amdgpu_ring *ring, { int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = jpeg_v4_0_5_stop(ring->adev); if (r) return r; r = jpeg_v4_0_5_start(ring->adev); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v4_0_5_ip_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c index 46bf15dce2bd0..43cff4db2c153 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c @@ -650,14 +650,13 @@ static int jpeg_v5_0_0_ring_reset(struct amdgpu_ring *ring, { int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = jpeg_v5_0_0_stop(ring->adev); if (r) return r; r = jpeg_v5_0_0_start(ring->adev); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v5_0_0_ip_funcs = { 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 ab0bf880d3d8a..146ec7b1d0ab9 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c @@ -844,10 +844,9 @@ static int jpeg_v5_0_1_ring_reset(struct amdgpu_ring *ring, unsigned int vmid, struct amdgpu_fence *timedout_fence) { - amdgpu_ring_reset_helper_begin(ring, timedout_fence); jpeg_v5_0_1_core_stall_reset(ring); jpeg_v5_0_1_init_jrbc(ring); - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v5_0_1_ip_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c index 1821dced936fb..56c4a37520925 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c @@ -633,14 +633,13 @@ static int jpeg_v5_3_0_ring_reset(struct amdgpu_ring *ring, { int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = jpeg_v5_3_0_stop(ring->adev); if (r) return r; r = jpeg_v5_3_0_start(ring->adev); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amd_ip_funcs jpeg_v5_3_0_ip_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c index c5dc727c7b448..c983cadbdb808 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c @@ -1557,15 +1557,13 @@ static int sdma_v5_0_reset_queue(struct amdgpu_ring *ring, return -EINVAL; } - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - amdgpu_amdkfd_suspend(adev, true); r = amdgpu_sdma_reset_engine(adev, ring->me, true); amdgpu_amdkfd_resume(adev, true); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static int sdma_v5_0_stop_queue(struct amdgpu_ring *ring) diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c index 3076734462d25..cc9ecfa8673bf 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c @@ -1473,15 +1473,13 @@ static int sdma_v5_2_reset_queue(struct amdgpu_ring *ring, return -EINVAL; } - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - amdgpu_amdkfd_suspend(adev, true); r = amdgpu_sdma_reset_engine(adev, ring->me, true); amdgpu_amdkfd_resume(adev, true); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static int sdma_v5_2_stop_queue(struct amdgpu_ring *ring) diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c index fbac29485d0c8..69aa10265891e 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c @@ -1602,8 +1602,6 @@ static int sdma_v6_0_reset_queue(struct amdgpu_ring *ring, return -EINVAL; } - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - r = amdgpu_mes_reset_legacy_queue(adev, ring, vmid, true, 0); if (r) return r; @@ -1612,7 +1610,7 @@ static int sdma_v6_0_reset_queue(struct amdgpu_ring *ring, if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static int sdma_v6_0_set_trap_irq_state(struct amdgpu_device *adev, diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c index bb9fae2c8dee0..1425c0c2ca9a8 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c @@ -814,8 +814,6 @@ static int sdma_v7_0_reset_queue(struct amdgpu_ring *ring, return -EINVAL; } - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - r = amdgpu_mes_reset_legacy_queue(adev, ring, vmid, true, 0); if (r) return r; @@ -824,7 +822,7 @@ static int sdma_v7_0_reset_queue(struct amdgpu_ring *ring, if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } /** diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v7_1.c b/drivers/gpu/drm/amd/amdgpu/sdma_v7_1.c index 5efdb4dcbed97..95768ff7f9985 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v7_1.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v7_1.c @@ -805,8 +805,6 @@ static int sdma_v7_1_reset_queue(struct amdgpu_ring *ring, return -EINVAL; } - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - r = amdgpu_mes_reset_legacy_queue(adev, ring, vmid, true, 0); if (r) return r; @@ -815,7 +813,7 @@ static int sdma_v7_1_reset_queue(struct amdgpu_ring *ring, if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } /** diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c index d17219be50f39..151da0e405a80 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c @@ -1964,14 +1964,13 @@ static int vcn_v4_0_ring_reset(struct amdgpu_ring *ring, struct amdgpu_vcn_inst *vinst = &adev->vcn.inst[ring->me]; int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = vcn_v4_0_stop(vinst); if (r) return r; r = vcn_v4_0_start(vinst); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static struct amdgpu_ring_funcs vcn_v4_0_unified_ring_vm_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c index cb7123ec1a5d1..68cfa648a82c6 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c @@ -1605,8 +1605,6 @@ static int vcn_v4_0_3_ring_reset(struct amdgpu_ring *ring, struct amdgpu_device *adev = ring->adev; struct amdgpu_vcn_inst *vinst = &adev->vcn.inst[ring->me]; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - vcn_inst = GET_INST(VCN, ring->me); r = amdgpu_dpm_reset_vcn(adev, 1 << vcn_inst); @@ -1621,7 +1619,7 @@ static int vcn_v4_0_3_ring_reset(struct amdgpu_ring *ring, vcn_v4_0_3_hw_init_inst(vinst); vcn_v4_0_3_start_dpg_mode(vinst, adev->vcn.inst[ring->me].indirect_sram); - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amdgpu_ring_funcs vcn_v4_0_3_unified_ring_vm_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c index 1f6a22983c0dd..c9c32ef1f1317 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c @@ -1469,14 +1469,13 @@ static int vcn_v4_0_5_ring_reset(struct amdgpu_ring *ring, struct amdgpu_vcn_inst *vinst = &adev->vcn.inst[ring->me]; int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = vcn_v4_0_5_stop(vinst); if (r) return r; r = vcn_v4_0_5_start(vinst); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static struct amdgpu_ring_funcs vcn_v4_0_5_unified_ring_vm_funcs = { diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c index 0202df5db1e12..34459b4b9b987 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c @@ -1189,14 +1189,13 @@ static int vcn_v5_0_0_ring_reset(struct amdgpu_ring *ring, struct amdgpu_vcn_inst *vinst = &adev->vcn.inst[ring->me]; int r; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); r = vcn_v5_0_0_stop(vinst); if (r) return r; r = vcn_v5_0_0_start(vinst); if (r) return r; - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amdgpu_ring_funcs vcn_v5_0_0_unified_ring_vm_funcs = { 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 8bd457dea4cff..06b4399ef295a 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c @@ -1310,8 +1310,6 @@ static int vcn_v5_0_1_ring_reset(struct amdgpu_ring *ring, struct amdgpu_device *adev = ring->adev; struct amdgpu_vcn_inst *vinst = &adev->vcn.inst[ring->me]; - amdgpu_ring_reset_helper_begin(ring, timedout_fence); - vcn_inst = GET_INST(VCN, ring->me); r = amdgpu_dpm_reset_vcn(adev, 1 << vcn_inst); @@ -1323,7 +1321,7 @@ static int vcn_v5_0_1_ring_reset(struct amdgpu_ring *ring, vcn_v5_0_1_hw_init_inst(adev, ring->me); vcn_v5_0_1_start_dpg_mode(vinst, vinst->indirect_sram); - return amdgpu_ring_reset_helper_end(ring, timedout_fence); + return amdgpu_ring_test_ring(ring); } static const struct amdgpu_ring_funcs vcn_v5_0_1_unified_ring_vm_funcs = { -- 2.52.0
