diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c index 7427d8cd4c43..3f956065d069 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c @@ -370,6 +370,10 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)  	adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;  	adev->mc.visible_vram_size = adev->mc.aper_size; +	/* In case the PCI BAR is larger than the actual amount of vram */ +	if (adev->mc.visible_vram_size > adev->mc.real_vram_size) +		adev->mc.visible_vram_size = adev->mc.real_vram_size; +  	/* unless the user had overridden it, set the gart  	 * size equal to the 1024 or vram, whichever is larger.  	 */ @@ -513,7 +517,7 @@ static int gmc_v7_0_gart_enable(struct amdgpu_device *adev)  	WREG32(mmVM_L2_CNTL3, tmp);  	/* setup context0 */  	WREG32(mmVM_CONTEXT0_PAGE_TABLE_START_ADDR, adev->mc.gtt_start >> 12); -	WREG32(mmVM_CONTEXT0_PAGE_TABLE_END_ADDR, (adev->mc.gtt_end >> 12) - 1); +	WREG32(mmVM_CONTEXT0_PAGE_TABLE_END_ADDR, adev->mc.gtt_end >> 12);  	WREG32(mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR, adev->gart.table_addr >> 12);  	WREG32(mmVM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR,  			(u32)(adev->dummy_page.addr >> 12)); @@ -1012,7 +1016,6 @@ static int gmc_v7_0_suspend(void *handle)  	struct amdgpu_device *adev = (struct amdgpu_device *)handle;  	if (adev->vm_manager.enabled) { -		amdgpu_vm_manager_fini(adev);  		gmc_v7_0_vm_fini(adev);  		adev->vm_manager.enabled = false;  	}  | 
