Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: init more register for sdma

This help fix reloading driver hang issue of SDMA
ring

Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Monk Liu and committed by
Alex Deucher
d72f7c06 9a005bef

+6
+2
drivers/gpu/drm/amd/amdgpu/cik_sdma.c
··· 419 419 /* Initialize the ring buffer's read and write pointers */ 420 420 WREG32(mmSDMA0_GFX_RB_RPTR + sdma_offsets[i], 0); 421 421 WREG32(mmSDMA0_GFX_RB_WPTR + sdma_offsets[i], 0); 422 + WREG32(mmSDMA0_GFX_IB_RPTR + sdma_offsets[i], 0); 423 + WREG32(mmSDMA0_GFX_IB_OFFSET + sdma_offsets[i], 0); 422 424 423 425 /* set the wb address whether it's enabled or not */ 424 426 WREG32(mmSDMA0_GFX_RB_RPTR_ADDR_HI + sdma_offsets[i],
+2
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
··· 461 461 /* Initialize the ring buffer's read and write pointers */ 462 462 WREG32(mmSDMA0_GFX_RB_RPTR + sdma_offsets[i], 0); 463 463 WREG32(mmSDMA0_GFX_RB_WPTR + sdma_offsets[i], 0); 464 + WREG32(mmSDMA0_GFX_IB_RPTR + sdma_offsets[i], 0); 465 + WREG32(mmSDMA0_GFX_IB_OFFSET + sdma_offsets[i], 0); 464 466 465 467 /* set the wb address whether it's enabled or not */ 466 468 WREG32(mmSDMA0_GFX_RB_RPTR_ADDR_HI + sdma_offsets[i],
+2
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
··· 672 672 /* Initialize the ring buffer's read and write pointers */ 673 673 WREG32(mmSDMA0_GFX_RB_RPTR + sdma_offsets[i], 0); 674 674 WREG32(mmSDMA0_GFX_RB_WPTR + sdma_offsets[i], 0); 675 + WREG32(mmSDMA0_GFX_IB_RPTR + sdma_offsets[i], 0); 676 + WREG32(mmSDMA0_GFX_IB_OFFSET + sdma_offsets[i], 0); 675 677 676 678 /* set the wb address whether it's enabled or not */ 677 679 WREG32(mmSDMA0_GFX_RB_RPTR_ADDR_HI + sdma_offsets[i],