diff options
| author | Christian König <christian.koenig@amd.com> | 2018-04-10 13:42:38 +0200 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2018-05-15 13:43:19 -0500 | 
| commit | 0808210478c76606c12bb475b3272b7780240812 (patch) | |
| tree | 301f9dc5f2e30ce5802be87b0a3e595457644563 /drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |
| parent | 1afd30efeddbb1b32cf35d3bf6477b35690eeca6 (diff) | |
drm/amdgpu: revert "Don't change preferred domian when fallback GTT v6"
This reverts commit 7d1ca1325260a9e9329b10a21e3692e6f188936f.
Makes fallback handling to complicated. This is just a feature for the
GEM interface and shouldn't leak into the core BO create function.
The intended change to preserve the preferred domains is implemented in
a follow up patch.
Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Chunming Zhou <david1.zhou@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 | 37 | 
1 files changed, 13 insertions, 24 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 1de6864da717..24f582c696cc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -356,7 +356,6 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev, unsigned long size,  	struct amdgpu_bo *bo;  	unsigned long page_align;  	size_t acc_size; -	u32 domains, preferred_domains, allowed_domains;  	int r;  	page_align = roundup(byte_align, PAGE_SIZE) >> PAGE_SHIFT; @@ -370,24 +369,22 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev, unsigned long size,  	acc_size = ttm_bo_dma_acc_size(&adev->mman.bdev, size,  				       sizeof(struct amdgpu_bo)); -	preferred_domains = 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); -	allowed_domains = preferred_domains; -	if (type != ttm_bo_type_kernel && -	    allowed_domains == AMDGPU_GEM_DOMAIN_VRAM) -		allowed_domains |= AMDGPU_GEM_DOMAIN_GTT; -	domains = preferred_domains; -retry:  	bo = kzalloc(sizeof(struct amdgpu_bo), GFP_KERNEL);  	if (bo == NULL)  		return -ENOMEM;  	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 = 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); +	bo->allowed_domains = bo->preferred_domains; +	if (type != ttm_bo_type_kernel && +	    bo->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM) +		bo->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;  	bo->flags = flags; @@ -420,20 +417,12 @@ retry:  #endif  	bo->tbo.bdev = &adev->mman.bdev; -	amdgpu_ttm_placement_from_domain(bo, domains); +	amdgpu_ttm_placement_from_domain(bo, domain); +  	r = ttm_bo_init_reserved(&adev->mman.bdev, &bo->tbo, size, type,  				 &bo->placement, page_align, &ctx, acc_size,  				 NULL, resv, &amdgpu_ttm_bo_destroy); -	if (unlikely(r && r != -ERESTARTSYS) && type == ttm_bo_type_device) { -		if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) { -			flags &= ~AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; -			goto retry; -		} else if (domains != allowed_domains) { -			domains = allowed_domains; -			goto retry; -		} -	} -	if (unlikely(r)) +	if (unlikely(r != 0))  		return r;  	if (adev->gmc.visible_vram_size < adev->gmc.real_vram_size &&  | 
