> -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf > Of Monk Liu > Sent: Wednesday, February 08, 2017 4:27 AM > To: amd-gfx at lists.freedesktop.org > Cc: Liu, Monk > Subject: [PATCH 10/11] drm/amdgpu:use clear_ring to clr RB > > In resume routine, we need clr RB prior to the > ring test of engine, otherwise some engine hang > duplicated during GPU reset. > > Change-Id: Ie28f5aa677074f922e4a1a2eeeb7fe06461d9bdb > Signed-off-by: Monk Liu <Monk.Liu at amd.com> Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 +- > drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 1 + > drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 1 + > 3 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c > index 7bacf3c..37d8422 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c > @@ -230,7 +230,7 @@ int amdgpu_ring_init(struct amdgpu_device *adev, > struct amdgpu_ring *ring, > dev_err(adev->dev, "(%d) ring create failed\n", r); > return r; > } > - memset((void *)ring->ring, 0, ring->ring_size); > + amdgpu_ring_clear_ring(ring); > } > ring->ptr_mask = (ring->ring_size / 4) - 1; > ring->max_dw = max_dw; > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > index b0612d1..6584173 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > @@ -4509,6 +4509,7 @@ static int gfx_v8_0_cp_gfx_resume(struct > amdgpu_device *adev) > } > > /* start the ring */ > + amdgpu_ring_clear_ring(ring); > gfx_v8_0_cp_gfx_start(adev); > ring->ready = true; > r = amdgpu_ring_test_ring(ring); > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > index 9394ca6..d5206f5 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > @@ -615,6 +615,7 @@ static int sdma_v3_0_gfx_resume(struct > amdgpu_device *adev) > > for (i = 0; i < adev->sdma.num_instances; i++) { > ring = &adev->sdma.instance[i].ring; > + amdgpu_ring_clear_ring(ring); > wb_offset = (ring->rptr_offs * 4); > > mutex_lock(&adev->srbm_mutex); > -- > 2.7.4 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx