diff options
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 5 |
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) | |||
228 | static void gmc_v6_0_vram_gtt_location(struct amdgpu_device *adev, | 228 | static 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 | } |