diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/si_dma.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/si_dma.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/si_dma.c b/drivers/gpu/drm/amd/amdgpu/si_dma.c index 195b45bcb8ad..f675111ace20 100644 --- a/drivers/gpu/drm/amd/amdgpu/si_dma.c +++ b/drivers/gpu/drm/amd/amdgpu/si_dma.c @@ -40,7 +40,7 @@ static void si_dma_set_irq_funcs(struct amdgpu_device *adev);  static uint64_t si_dma_ring_get_rptr(struct amdgpu_ring *ring)  { -	return ring->adev->wb.wb[ring->rptr_offs>>2]; +	return *ring->rptr_cpu_addr;  }  static uint64_t si_dma_ring_get_wptr(struct amdgpu_ring *ring) @@ -56,8 +56,7 @@ static void si_dma_ring_set_wptr(struct amdgpu_ring *ring)  	struct amdgpu_device *adev = ring->adev;  	u32 me = (ring == &adev->sdma.instance[0].ring) ? 0 : 1; -	WREG32(DMA_RB_WPTR + sdma_offsets[me], -	       (lower_32_bits(ring->wptr) << 2) & 0x3fffc); +	WREG32(DMA_RB_WPTR + sdma_offsets[me], (ring->wptr << 2) & 0x3fffc);  }  static void si_dma_ring_emit_ib(struct amdgpu_ring *ring, @@ -154,7 +153,7 @@ static int si_dma_start(struct amdgpu_device *adev)  		WREG32(DMA_RB_RPTR + sdma_offsets[i], 0);  		WREG32(DMA_RB_WPTR + sdma_offsets[i], 0); -		rptr_addr = adev->wb.gpu_addr + (ring->rptr_offs * 4); +		rptr_addr = ring->rptr_gpu_addr;  		WREG32(DMA_RB_RPTR_ADDR_LO + sdma_offsets[i], lower_32_bits(rptr_addr));  		WREG32(DMA_RB_RPTR_ADDR_HI + sdma_offsets[i], upper_32_bits(rptr_addr) & 0xFF); @@ -175,7 +174,7 @@ static int si_dma_start(struct amdgpu_device *adev)  		WREG32(DMA_CNTL + sdma_offsets[i], dma_cntl);  		ring->wptr = 0; -		WREG32(DMA_RB_WPTR + sdma_offsets[i], lower_32_bits(ring->wptr) << 2); +		WREG32(DMA_RB_WPTR + sdma_offsets[i], ring->wptr << 2);  		WREG32(DMA_RB_CNTL + sdma_offsets[i], rb_cntl | DMA_RB_ENABLE);  		ring->sched.ready = true;  | 
