On 07/01, Alex Deucher wrote: > Re-emit the unprocessed state after resetting the queue. > > Signed-off-by: Alex Deucher <alexander.deuc...@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > index 76ba664efecb3..30f6b04cf82e4 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > @@ -7187,7 +7187,7 @@ static int gfx_v9_0_reset_kcq(struct amdgpu_ring *ring, > if (!kiq->pmf || !kiq->pmf->kiq_unmap_queues) > return -EINVAL; > > - drm_sched_wqueue_stop(&ring->sched); > + amdgpu_ring_reset_helper_begin(ring, timedout_fence); > > spin_lock_irqsave(&kiq->ring_lock, flags); > > @@ -7238,19 +7238,13 @@ static int gfx_v9_0_reset_kcq(struct amdgpu_ring > *ring, > } > kiq->pmf->kiq_map_queues(kiq_ring, ring); > amdgpu_ring_commit(kiq_ring); > - spin_unlock_irqrestore(&kiq->ring_lock, flags); > r = amdgpu_ring_test_ring(kiq_ring); > + spin_unlock_irqrestore(&kiq->ring_lock, flags);
Is this `spin_unlock_irqrestore` part something that maybe should be in another commit? Maybe one commit that make this change for all of the GFXs? Thanks > if (r) { > DRM_ERROR("fail to remap queue\n"); > return r; > } > - > - r = amdgpu_ring_test_ring(ring); > - if (r) > - return r; > - amdgpu_fence_driver_force_completion(ring); > - drm_sched_wqueue_start(&ring->sched); > - return 0; > + return amdgpu_ring_reset_helper_end(ring, timedout_fence); > } > > static void gfx_v9_ip_print(struct amdgpu_ip_block *ip_block, struct > drm_printer *p) > -- > 2.50.0 > -- Rodrigo Siqueira