drm/amdgpu: Set doorbell range for gfx ring
If there are 2 gfx rings, the doorbell lower range of second ring will override the first ring. Signed-off-by: Jinzhou.Su <Jinzhou.Su@amd.com> Reviewed-by: Huang Rui <ray.huang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Родитель
3591ecd630
Коммит
79c77ac603
|
@ -6357,8 +6357,11 @@ static int gfx_v10_0_gfx_mqd_init(struct amdgpu_ring *ring)
|
|||
DOORBELL_EN, 0);
|
||||
mqd->cp_rb_doorbell_control = tmp;
|
||||
|
||||
/* set doorbell range */
|
||||
gfx_v10_0_cp_gfx_set_doorbell(adev, ring);
|
||||
/*if there are 2 gfx rings, set the lower doorbell range of the first ring,
|
||||
*otherwise the range of the second ring will override the first ring */
|
||||
if (ring->doorbell_index == adev->doorbell_index.gfx_ring0 << 1)
|
||||
gfx_v10_0_cp_gfx_set_doorbell(adev, ring);
|
||||
|
||||
/* reset read and write pointers, similar to CP_RB0_WPTR/_RPTR */
|
||||
ring->wptr = 0;
|
||||
mqd->cp_gfx_hqd_rptr = RREG32_SOC15(GC, 0, mmCP_GFX_HQD_RPTR);
|
||||
|
|
Загрузка…
Ссылка в новой задаче