[PATCH 2/2] drm/amdgpu/sdma3: set wptr shadow atomically

Deucher, Alexander Alexander.Deucher at amd.com
Thu Sep 14 12:49:45 UTC 2017


> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Xiangliang.Yu
> Sent: Thursday, September 14, 2017 3:34 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Yu, Xiangliang
> Subject: [PATCH 2/2] drm/amdgpu/sdma3: set wptr shadow atomically
> 
> Port it from sdma4 for wptr polling usage.
> 
> Signed-off-by: Xiangliang.Yu <Xiangliang.Yu at amd.com>

Series is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
> b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
> index b7d69ab..728c0d8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
> @@ -379,8 +379,10 @@ static void sdma_v3_0_ring_set_wptr(struct
> amdgpu_ring *ring)
>  	struct amdgpu_device *adev = ring->adev;
> 
>  	if (ring->use_doorbell) {
> +		u32 *wb = (u32 *)&adev->wb.wb[ring->wptr_offs];
> +
>  		/* XXX check if swapping is necessary on BE */
> -		adev->wb.wb[ring->wptr_offs] = lower_32_bits(ring->wptr)
> << 2;
> +		WRITE_ONCE(*wb, (lower_32_bits(ring->wptr) << 2));
>  		WDOORBELL32(ring->doorbell_index, lower_32_bits(ring-
> >wptr) << 2);
>  	} else {
>  		int me = (ring == &ring->adev->sdma.instance[0].ring) ? 0 : 1;
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list