diff options
| author | Dave Airlie <airlied@redhat.com> | 2016-03-08 03:51:51 +0300 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2016-03-08 03:51:51 +0300 | 
| commit | 550e3b23a53c88adfa46e64f9d442743e65d47da (patch) | |
| tree | f6a345184c325130473485457763836b72249cbb /drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | |
| parent | 984fee64355bf5384319e2ef31f0b03273629799 (diff) | |
| parent | 6157bd7a1009c2a6944fb3eee8ed2b3dea091fd8 (diff) | |
| download | linux-550e3b23a53c88adfa46e64f9d442743e65d47da.tar.xz | |
Merge branch 'drm-next-4.6' of git://people.freedesktop.org/~agd5f/linux into drm-next
Some more radeon and amdgpu stuff for drm-next.  Mostly just bug fixes
for new features and cleanups.
* 'drm-next-4.6' of git://people.freedesktop.org/~agd5f/linux:
  drm/amdgpu: fix rb bitmap & cu bitmap calculation
  drm/amdgpu: trace the pd_addr in vm_grab_id as well
  drm/amdgpu: fix VM faults caused by vm_grab_id() v4
  drm/amdgpu: update radeon acpi header
  drm/radeon: update radeon acpi header
  drm/amd: cleanup get_mfd_cell_dev()
  drm/amdgpu: fix error handling in amdgpu_bo_list_set
  drm/amd/powerplay: fix code style warning.
  drm/amd: Do not make DRM_AMD_ACP default to y
  drm/amdgpu/gfx: fix off by one in rb rework (v2)
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_job.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 15 | 
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c index f29bbb96a881..90e52f7e17a0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c @@ -105,16 +105,23 @@ static struct fence *amdgpu_job_dependency(struct amd_sched_job *sched_job)  	struct fence *fence = amdgpu_sync_get_fence(&job->sync); -	if (fence == NULL && vm && !job->ibs->grabbed_vmid) { +	if (fence == NULL && vm && !job->ibs->vm_id) {  		struct amdgpu_ring *ring = job->ring; +		unsigned i, vm_id; +		uint64_t vm_pd_addr;  		int r;  		r = amdgpu_vm_grab_id(vm, ring, &job->sync, -				      &job->base.s_fence->base); +				      &job->base.s_fence->base, +				      &vm_id, &vm_pd_addr);  		if (r)  			DRM_ERROR("Error getting VM ID (%d)\n", r); -		else -			job->ibs->grabbed_vmid = true; +		else { +			for (i = 0; i < job->num_ibs; ++i) { +				job->ibs[i].vm_id = vm_id; +				job->ibs[i].vm_pd_addr = vm_pd_addr; +			} +		}  		fence = amdgpu_sync_get_fence(&job->sync);  	}  | 
