Merge tag 'amd-drm-next-6.3-2023-01-06' of https://gitlab.freedesktop.org/agd5f/linux...
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_gmc.c
index 12871b7..94f10ac 100644 (file)
@@ -202,13 +202,20 @@ uint64_t amdgpu_gmc_agp_addr(struct ttm_buffer_object *bo)
 void amdgpu_gmc_vram_location(struct amdgpu_device *adev, struct amdgpu_gmc *mc,
                              u64 base)
 {
+       uint64_t vis_limit = (uint64_t)amdgpu_vis_vram_limit << 20;
        uint64_t limit = (uint64_t)amdgpu_vram_limit << 20;
 
        mc->vram_start = base;
        mc->vram_end = mc->vram_start + mc->mc_vram_size - 1;
-       if (limit && limit < mc->real_vram_size)
+       if (limit < mc->real_vram_size)
                mc->real_vram_size = limit;
 
+       if (vis_limit && vis_limit < mc->visible_vram_size)
+               mc->visible_vram_size = vis_limit;
+
+       if (mc->real_vram_size < mc->visible_vram_size)
+               mc->visible_vram_size = mc->real_vram_size;
+
        if (mc->xgmi.num_physical_nodes == 0) {
                mc->fb_start = mc->vram_start;
                mc->fb_end = mc->vram_end;