diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c index 2d56b60bc058..20e1762f1a73 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c @@ -6970,8 +6970,12 @@ static int gfx_v10_0_kiq_init_register(struct amdgpu_ring *ring)  	if (ring->use_doorbell) {  		WREG32_SOC15(GC, 0, mmCP_MEC_DOORBELL_RANGE_LOWER,  			(adev->doorbell_index.kiq * 2) << 2); +		/* If GC has entered CGPG, ringing doorbell > first page doesn't +		 * wakeup GC. Enlarge CP_MEC_DOORBELL_RANGE_UPPER to workaround +		 * this issue. +		 */  		WREG32_SOC15(GC, 0, mmCP_MEC_DOORBELL_RANGE_UPPER, -			(adev->doorbell_index.userqueue_end * 2) << 2); +			(adev->doorbell.size - 4));  	}  	WREG32_SOC15(GC, 0, mmCP_HQD_PQ_DOORBELL_CONTROL, |