Am 28.07.2017 um 22:34 schrieb Alex Deucher: > No functional change until wptr polling uses this > location (future patch). > > v2: use WRITE_ONCE > > Cc: Frank Min <Frank.Min at amd.com> > Signed-off-by: Alex Deucher <alexander.deucher at amd.com> Reviewed-by: Christian König <christian.koenig at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > index bca5d8e..660704d 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > @@ -293,6 +293,8 @@ static void sdma_v4_0_ring_set_wptr(struct amdgpu_ring *ring) > > DRM_DEBUG("Setting write pointer\n"); > if (ring->use_doorbell) { > + u64 *wb = (u64 *)&adev->wb.wb[ring->wptr_offs]; > + > DRM_DEBUG("Using doorbell -- " > "wptr_offs == 0x%08x " > "lower_32_bits(ring->wptr) << 2 == 0x%08x " > @@ -301,8 +303,7 @@ static void sdma_v4_0_ring_set_wptr(struct amdgpu_ring *ring) > lower_32_bits(ring->wptr << 2), > upper_32_bits(ring->wptr << 2)); > /* XXX check if swapping is necessary on BE */ > - adev->wb.wb[ring->wptr_offs] = lower_32_bits(ring->wptr << 2); > - adev->wb.wb[ring->wptr_offs + 1] = upper_32_bits(ring->wptr << 2); > + WRITE_ONCE(*wb, (ring->wptr << 2)); > DRM_DEBUG("calling WDOORBELL64(0x%08x, 0x%016llx)\n", > ring->doorbell_index, ring->wptr << 2); >