aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoger He <Hongbo.He@amd.com>2017-08-24 02:57:57 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-08-24 12:34:30 -0400
commit2959a5346b8943412226c4b51c78f9b6f077c2a0 (patch)
tree9e8653c2a7452088cef665b7f05c6f955cd3bd77
parentac7afe6b3cf39bf2c02a7463c0b81b145e41a906 (diff)
drm/amd/amdgpu: fix BANK_SELECT on Vega10 (v2)
BANK_SELECT should always be FRAGMENT_SIZE + 3 due to 8-entry (2^3) per cache line in L2 TLB for Vega10. v2: agd: fix warning Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Roger He <Hongbo.He@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c5
-rw-r--r--drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c5
2 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
index 4f2788b61a08..6c8040e616c4 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
@@ -124,7 +124,7 @@ static void gfxhub_v1_0_init_tlb_regs(struct amdgpu_device *adev)
124 124
125static void gfxhub_v1_0_init_cache_regs(struct amdgpu_device *adev) 125static void gfxhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
126{ 126{
127 uint32_t tmp, field; 127 uint32_t tmp;
128 128
129 /* Setup L2 cache */ 129 /* Setup L2 cache */
130 tmp = RREG32_SOC15(GC, 0, mmVM_L2_CNTL); 130 tmp = RREG32_SOC15(GC, 0, mmVM_L2_CNTL);
@@ -143,9 +143,8 @@ static void gfxhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
143 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1); 143 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1);
144 WREG32_SOC15(GC, 0, mmVM_L2_CNTL2, tmp); 144 WREG32_SOC15(GC, 0, mmVM_L2_CNTL2, tmp);
145 145
146 field = adev->vm_manager.fragment_size;
147 tmp = mmVM_L2_CNTL3_DEFAULT; 146 tmp = mmVM_L2_CNTL3_DEFAULT;
148 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, field); 147 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, 9);
149 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, L2_CACHE_BIGK_FRAGMENT_SIZE, 6); 148 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, L2_CACHE_BIGK_FRAGMENT_SIZE, 6);
150 WREG32_SOC15(GC, 0, mmVM_L2_CNTL3, tmp); 149 WREG32_SOC15(GC, 0, mmVM_L2_CNTL3, tmp);
151 150
diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
index 4395a4f12149..74cb647da30e 100644
--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
@@ -138,7 +138,7 @@ static void mmhub_v1_0_init_tlb_regs(struct amdgpu_device *adev)
138 138
139static void mmhub_v1_0_init_cache_regs(struct amdgpu_device *adev) 139static void mmhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
140{ 140{
141 uint32_t tmp, field; 141 uint32_t tmp;
142 142
143 /* Setup L2 cache */ 143 /* Setup L2 cache */
144 tmp = RREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL); 144 tmp = RREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL);
@@ -157,9 +157,8 @@ static void mmhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
157 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1); 157 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1);
158 WREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL2, tmp); 158 WREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL2, tmp);
159 159
160 field = adev->vm_manager.fragment_size;
161 tmp = mmVM_L2_CNTL3_DEFAULT; 160 tmp = mmVM_L2_CNTL3_DEFAULT;
162 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, field); 161 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, 9);
163 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, L2_CACHE_BIGK_FRAGMENT_SIZE, 6); 162 tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, L2_CACHE_BIGK_FRAGMENT_SIZE, 6);
164 WREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL3, tmp); 163 WREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL3, tmp);
165 164