diff options
author | Dave Airlie <airlied@redhat.com> | 2016-03-07 19:51:51 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-03-07 19:51:51 -0500 |
commit | 550e3b23a53c88adfa46e64f9d442743e65d47da (patch) | |
tree | f6a345184c325130473485457763836b72249cbb /drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | |
parent | 984fee64355bf5384319e2ef31f0b03273629799 (diff) | |
parent | 6157bd7a1009c2a6944fb3eee8ed2b3dea091fd8 (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.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) | |||
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 | } |