Skip to content

Commit 46203a5

Browse files
committed
drm/amdgpu/gmc10: properly set BANK_SELECT and FRAGMENT_SIZE
These were not aligned for optimal performance for GPUVM. Acked-by: Christian König <[email protected]> Reviewed-by: Tianci Yin <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 361d66e commit 46203a5

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,15 @@ static void gfxhub_v2_0_init_cache_regs(struct amdgpu_device *adev)
155155
WREG32_SOC15(GC, 0, mmGCVM_L2_CNTL2, tmp);
156156

157157
tmp = mmGCVM_L2_CNTL3_DEFAULT;
158+
if (adev->gmc.translate_further) {
159+
tmp = REG_SET_FIELD(tmp, GCVM_L2_CNTL3, BANK_SELECT, 12);
160+
tmp = REG_SET_FIELD(tmp, GCVM_L2_CNTL3,
161+
L2_CACHE_BIGK_FRAGMENT_SIZE, 9);
162+
} else {
163+
tmp = REG_SET_FIELD(tmp, GCVM_L2_CNTL3, BANK_SELECT, 9);
164+
tmp = REG_SET_FIELD(tmp, GCVM_L2_CNTL3,
165+
L2_CACHE_BIGK_FRAGMENT_SIZE, 6);
166+
}
158167
WREG32_SOC15(GC, 0, mmGCVM_L2_CNTL3, tmp);
159168

160169
tmp = mmGCVM_L2_CNTL4_DEFAULT;

drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,15 @@ static void mmhub_v2_0_init_cache_regs(struct amdgpu_device *adev)
142142
WREG32_SOC15(MMHUB, 0, mmMMVM_L2_CNTL2, tmp);
143143

144144
tmp = mmMMVM_L2_CNTL3_DEFAULT;
145+
if (adev->gmc.translate_further) {
146+
tmp = REG_SET_FIELD(tmp, MMVM_L2_CNTL3, BANK_SELECT, 12);
147+
tmp = REG_SET_FIELD(tmp, MMVM_L2_CNTL3,
148+
L2_CACHE_BIGK_FRAGMENT_SIZE, 9);
149+
} else {
150+
tmp = REG_SET_FIELD(tmp, MMVM_L2_CNTL3, BANK_SELECT, 9);
151+
tmp = REG_SET_FIELD(tmp, MMVM_L2_CNTL3,
152+
L2_CACHE_BIGK_FRAGMENT_SIZE, 6);
153+
}
145154
WREG32_SOC15(MMHUB, 0, mmMMVM_L2_CNTL3, tmp);
146155

147156
tmp = mmMMVM_L2_CNTL4_DEFAULT;

0 commit comments

Comments
 (0)