aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2016-03-07 19:51:51 -0500
committerDave Airlie <airlied@redhat.com>2016-03-07 19:51:51 -0500
commit550e3b23a53c88adfa46e64f9d442743e65d47da (patch)
treef6a345184c325130473485457763836b72249cbb /drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
parent984fee64355bf5384319e2ef31f0b03273629799 (diff)
parent6157bd7a1009c2a6944fb3eee8ed2b3dea091fd8 (diff)
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.c15
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)
105 105
106 struct fence *fence = amdgpu_sync_get_fence(&job->sync); 106 struct fence *fence = amdgpu_sync_get_fence(&job->sync);
107 107
108 if (fence == NULL && vm && !job->ibs->grabbed_vmid) { 108 if (fence == NULL && vm && !job->ibs->vm_id) {
109 struct amdgpu_ring *ring = job->ring; 109 struct amdgpu_ring *ring = job->ring;
110 unsigned i, vm_id;
111 uint64_t vm_pd_addr;
110 int r; 112 int r;
111 113
112 r = amdgpu_vm_grab_id(vm, ring, &job->sync, 114 r = amdgpu_vm_grab_id(vm, ring, &job->sync,
113 &job->base.s_fence->base); 115 &job->base.s_fence->base,
116 &vm_id, &vm_pd_addr);
114 if (r) 117 if (r)
115 DRM_ERROR("Error getting VM ID (%d)\n", r); 118 DRM_ERROR("Error getting VM ID (%d)\n", r);
116 else 119 else {
117 job->ibs->grabbed_vmid = true; 120 for (i = 0; i < job->num_ibs; ++i) {
121 job->ibs[i].vm_id = vm_id;
122 job->ibs[i].vm_pd_addr = vm_pd_addr;
123 }
124 }
118 125
119 fence = amdgpu_sync_get_fence(&job->sync); 126 fence = amdgpu_sync_get_fence(&job->sync);
120 } 127 }