aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
index d0214d942bfc..224b6935c885 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
@@ -228,12 +228,15 @@ static int gmc_v6_0_mc_load_microcode(struct amdgpu_device *adev)
228static void gmc_v6_0_vram_gtt_location(struct amdgpu_device *adev, 228static void gmc_v6_0_vram_gtt_location(struct amdgpu_device *adev,
229 struct amdgpu_mc *mc) 229 struct amdgpu_mc *mc)
230{ 230{
231 u64 base = RREG32(mmMC_VM_FB_LOCATION) & 0xFFFF;
232 base <<= 24;
233
231 if (mc->mc_vram_size > 0xFFC0000000ULL) { 234 if (mc->mc_vram_size > 0xFFC0000000ULL) {
232 dev_warn(adev->dev, "limiting VRAM\n"); 235 dev_warn(adev->dev, "limiting VRAM\n");
233 mc->real_vram_size = 0xFFC0000000ULL; 236 mc->real_vram_size = 0xFFC0000000ULL;
234 mc->mc_vram_size = 0xFFC0000000ULL; 237 mc->mc_vram_size = 0xFFC0000000ULL;
235 } 238 }
236 amdgpu_vram_location(adev, &adev->mc, 0); 239 amdgpu_vram_location(adev, &adev->mc, base);
237 adev->mc.gtt_base_align = 0; 240 adev->mc.gtt_base_align = 0;
238 amdgpu_gtt_location(adev, mc); 241 amdgpu_gtt_location(adev, mc);
239} 242}