diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 3a7b56e57cec..5661b82d84d4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -33,6 +33,7 @@  #include <linux/slab.h>  #include <linux/dma-buf.h> +#include <drm/drm_drv.h>  #include <drm/amdgpu_drm.h>  #include <drm/drm_cache.h>  #include "amdgpu.h" @@ -1061,7 +1062,18 @@ int amdgpu_bo_init(struct amdgpu_device *adev)   */  void amdgpu_bo_fini(struct amdgpu_device *adev)  { +	int idx; +  	amdgpu_ttm_fini(adev); + +	if (drm_dev_enter(adev_to_drm(adev), &idx)) { + +		if (!adev->gmc.xgmi.connected_to_cpu) { +			arch_phys_wc_del(adev->gmc.vram_mtrr); +			arch_io_free_memtype_wc(adev->gmc.aper_base, adev->gmc.aper_size); +		} +		drm_dev_exit(idx); +	}  }  /**  | 
