diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c index 02a4c93673ce..7eb344717a78 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c @@ -201,6 +201,7 @@ 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; @@ -208,6 +209,12 @@ void amdgpu_gmc_vram_location(struct amdgpu_device *adev, struct amdgpu_gmc *mc,  	if (limit && 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; | 
