[PATCH] drm/amdgpu: fix gfx wptr for sdma v4

Christian König ckoenig.leichtzumerken at gmail.com
Wed Oct 31 08:13:57 UTC 2018


Am 31.10.18 um 03:57 schrieb Junwei Zhang:
> The wptr value will be shitfed when function returns.
> Remove the redundant shift and clean up.
>
> Signed-off-by: Junwei Zhang <Jerry.Zhang at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 13 ++++---------
>   1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> index 2b944db86950..da3b6d9cf4a8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> @@ -372,16 +372,11 @@ static uint64_t sdma_v4_0_ring_get_wptr(struct amdgpu_ring *ring)
>   		wptr = READ_ONCE(*((u64 *)&adev->wb.wb[ring->wptr_offs]));
>   		DRM_DEBUG("wptr/doorbell before shift == 0x%016llx\n", wptr);
>   	} else {
> -		u32 lowbit, highbit;
> -
> -		lowbit = RREG32_SDMA(ring->me, mmSDMA0_GFX_RB_WPTR) >> 2;
> -		highbit = RREG32_SDMA(ring->me, mmSDMA0_GFX_RB_WPTR_HI) >> 2;
> -
> -		DRM_DEBUG("wptr [%i]high== 0x%08x low==0x%08x\n",
> -				ring->me, highbit, lowbit);
> -		wptr = highbit;
> +		wptr = RREG32_SDMA(ring->me, mmSDMA0_GFX_RB_WPTR_HI);
>   		wptr = wptr << 32;
> -		wptr |= lowbit;
> +		wptr |= RREG32_SDMA(ring->me, mmSDMA0_GFX_RB_WPTR);
> +		DRM_DEBUG("wptr before shift [%i] wptr == 0x%016llx\n",
> +				ring->me, wptr);
>   	}
>   
>   	return wptr >> 2;



More information about the amd-gfx mailing list