drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()
authorXiaojie Yuan <xiaojie.yuan@amd.com>
Tue, 14 Jul 2020 07:47:31 +0000 (15:47 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 14 Jul 2020 19:42:17 +0000 (15:42 -0400)
commit05051496b2622e4d12e2036b35165969aa502f89
tree772b65efe21dc07bf473e1ce65527acabb433bc7
parent98a34cf931e848f8489d3fb15a8f5fc03802ad65
drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()

"u64 *wptr" points to the the wptr value in write back buffer and
"*wptr = (*wptr) >> 2;" results in the value being overwritten each time
when ->get_wptr() is called.

umr uses /sys/kernel/debug/dri/0/amdgpu_ring_sdma0 to get rptr/wptr and
decode ring content and it is affected by this issue.

fix and simplify the logic similar as sdma_v4_0_ring_get_wptr().

v2: fix for sdma5.2 as well
v3: drop sdma 5.2 changes for 5.8 and stable

Suggested-by: Le Ma <le.ma@amd.com>
Signed-off-by: Xiaojie Yuan <xiaojie.yuan@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c