summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2016-11-01 13:14:45 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-07-14 11:05:47 -0400
commite0205a7156a62bfcaa3f3f2ed556faf3c9b38aad (patch)
tree1ac63aeb65050050cffbae44c3afa8e9ed4cab71 /drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
parent9081c4cf7d4ea40cf7e77e8efe3c2bedb924b830 (diff)
downloadlinux-stable-e0205a7156a62bfcaa3f3f2ed556faf3c9b38aad.tar.gz
linux-stable-e0205a7156a62bfcaa3f3f2ed556faf3c9b38aad.tar.bz2
linux-stable-e0205a7156a62bfcaa3f3f2ed556faf3c9b38aad.zip
drm/amdgpu/gmc7: use the vram location programmed by the vbios
This makes mc programming much simpler in future patches. Since evergreen, the vbios has been programming the fb location to the proper vram size. The only reason to reprogram it would be to change the location. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
index 7e9ea53edf8b..0fc7d31176a5 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
@@ -242,13 +242,16 @@ static int gmc_v7_0_mc_load_microcode(struct amdgpu_device *adev)
static void gmc_v7_0_vram_gtt_location(struct amdgpu_device *adev,
struct amdgpu_mc *mc)
{
+ u64 base = RREG32(mmMC_VM_FB_LOCATION) & 0xFFFF;
+ base <<= 24;
+
if (mc->mc_vram_size > 0xFFC0000000ULL) {
/* leave room for at least 1024M GTT */
dev_warn(adev->dev, "limiting VRAM\n");
mc->real_vram_size = 0xFFC0000000ULL;
mc->mc_vram_size = 0xFFC0000000ULL;
}
- amdgpu_vram_location(adev, &adev->mc, 0);
+ amdgpu_vram_location(adev, &adev->mc, base);
adev->mc.gtt_base_align = 0;
amdgpu_gtt_location(adev, mc);
}