diff options
| author | Dave Airlie <airlied@redhat.com> | 2018-05-16 01:21:51 +0300 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2018-05-16 01:31:29 +0300 | 
| commit | 95d2c3e15da613afd53b4b8f2cdb352dc7d12221 (patch) | |
| tree | b407c31c3ad2a7e133e61ba36edb31274492fb84 /drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |
| parent | b8a71080ad288eb3fe42f101e64526cdd2823f93 (diff) | |
| parent | 8344c53f57057b42a5da87e9557c40fcda18fb7a (diff) | |
| download | linux-95d2c3e15da613afd53b4b8f2cdb352dc7d12221.tar.xz | |
Merge branch 'drm-next-4.18' of git://people.freedesktop.org/~agd5f/linux into drm-next
Main changes for 4.18.  I'd like to do a separate pull for vega20 later
this week or next.  Highlights:
- Reserve pre-OS scanout buffer during init for seemless transition from
  console to driver
- VEGAM support
- Improved GPU scheduler documentation
- Initial gfxoff support for raven
- SR-IOV fixes
- Default to non-AGP on PowerPC for radeon
- Fine grained clock voltage control for vega10
- Power profiles for vega10
- Further clean up of powerplay/driver interface
- Underlay fixes
- Display link bw updates
- Gamma fixes
- Scatter/Gather display support on CZ/ST
- Misc bug fixes and clean ups
[airlied: fixup v3d vs scheduler API change]
Link: https://patchwork.freedesktop.org/patch/msgid/20180515185450.1113-1-alexander.deucher@amd.com
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 16 | 
1 files changed, 5 insertions, 11 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 8e66f3702b7c..9c1d491d742e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c @@ -382,8 +382,7 @@ retry:  	p->bytes_moved += ctx.bytes_moved;  	if (adev->gmc.visible_vram_size < adev->gmc.real_vram_size && -	    bo->tbo.mem.mem_type == TTM_PL_VRAM && -	    bo->tbo.mem.start < adev->gmc.visible_vram_size >> PAGE_SHIFT) +	    amdgpu_bo_in_cpu_visible_vram(bo))  		p->bytes_moved_vis += ctx.bytes_moved;  	if (unlikely(r == -ENOMEM) && domain != bo->allowed_domains) { @@ -411,7 +410,6 @@ static bool amdgpu_cs_try_evict(struct amdgpu_cs_parser *p,  		struct amdgpu_bo_list_entry *candidate = p->evictable;  		struct amdgpu_bo *bo = candidate->robj;  		struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); -		u64 initial_bytes_moved, bytes_moved;  		bool update_bytes_moved_vis;  		uint32_t other; @@ -435,18 +433,14 @@ static bool amdgpu_cs_try_evict(struct amdgpu_cs_parser *p,  			continue;  		/* Good we can try to move this BO somewhere else */ -		amdgpu_ttm_placement_from_domain(bo, other);  		update_bytes_moved_vis =  			adev->gmc.visible_vram_size < adev->gmc.real_vram_size && -			bo->tbo.mem.mem_type == TTM_PL_VRAM && -			bo->tbo.mem.start < adev->gmc.visible_vram_size >> PAGE_SHIFT; -		initial_bytes_moved = atomic64_read(&adev->num_bytes_moved); +			amdgpu_bo_in_cpu_visible_vram(bo); +		amdgpu_ttm_placement_from_domain(bo, other);  		r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); -		bytes_moved = atomic64_read(&adev->num_bytes_moved) - -			initial_bytes_moved; -		p->bytes_moved += bytes_moved; +		p->bytes_moved += ctx.bytes_moved;  		if (update_bytes_moved_vis) -			p->bytes_moved_vis += bytes_moved; +			p->bytes_moved_vis += ctx.bytes_moved;  		if (unlikely(r))  			break; | 
