]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amdgpu: fix gfx wptr for sdma v4
authorJunwei Zhang <Jerry.Zhang@amd.com>
Wed, 31 Oct 2018 02:36:34 +0000 (10:36 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 5 Nov 2018 19:21:47 +0000 (14:21 -0500)
The wptr value will be shitfed when function returns.
Remove the redundant shift and clean up.

Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c

index ec1b2f3ec01ee2eeec091b11f1c8ec2ad58d002d..7f9a501c919d2b2a2a3c4aa68c4fb55a9844709d 100644 (file)
@@ -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;