diff options
| author | Chunming Zhou <david1.zhou@amd.com> | 2018-04-17 11:52:53 +0800 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2018-05-15 13:43:31 -0500 | 
| commit | aa2b2e2822831d78a283edb12cf8b7da21bdd0ed (patch) | |
| tree | 745a77d0e92a3e04254a8b0bb2c4dfc113afebcf /drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |
| parent | 58cd8fbc64b03d0e9961d627526bd07edbea00b9 (diff) | |
drm/amdgpu: set preferred_domain independent of fallback handling
When GEM needs to fallback to GTT for VRAM BOs we still want the
preferred domain to be untouched so that the BO has a cance to move back
to VRAM in the future.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
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/amdgpu_object.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 15 | 
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index cac65e32a0b9..9258f0694922 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -360,6 +360,7 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev,  	};  	struct amdgpu_bo *bo;  	unsigned long page_align, size = bp->size; +	u32 preferred_domains;  	size_t acc_size;  	int r; @@ -380,12 +381,14 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev,  	drm_gem_private_object_init(adev->ddev, &bo->gem_base, size);  	INIT_LIST_HEAD(&bo->shadow_list);  	INIT_LIST_HEAD(&bo->va); -	bo->preferred_domains = bp->domain & (AMDGPU_GEM_DOMAIN_VRAM | -					      AMDGPU_GEM_DOMAIN_GTT | -					      AMDGPU_GEM_DOMAIN_CPU | -					      AMDGPU_GEM_DOMAIN_GDS | -					      AMDGPU_GEM_DOMAIN_GWS | -					      AMDGPU_GEM_DOMAIN_OA); +	preferred_domains = bp->preferred_domain ? bp->preferred_domain : +		bp->domain; +	bo->preferred_domains = preferred_domains & (AMDGPU_GEM_DOMAIN_VRAM | +						     AMDGPU_GEM_DOMAIN_GTT | +						     AMDGPU_GEM_DOMAIN_CPU | +						     AMDGPU_GEM_DOMAIN_GDS | +						     AMDGPU_GEM_DOMAIN_GWS | +						     AMDGPU_GEM_DOMAIN_OA);  	bo->allowed_domains = bo->preferred_domains;  	if (bp->type != ttm_bo_type_kernel &&  	    bo->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)  | 
