diff options
author | Christian König <christian.koenig@amd.com> | 2018-07-13 10:29:10 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-07-16 17:11:53 -0400 |
commit | ee913fd9e166384aacc0aa70ffd4e93ca41d54b0 (patch) | |
tree | f40d24be324f847674d905720f5411967c31dd85 /drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | |
parent | 3320b8d2acd3d480d0dd4835d970067354eac915 (diff) |
drm/amdgpu: add amdgpu_job_submit_direct helper
Make sure that we properly initialize at least the sched member.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@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_job.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c index 2496f2269bcb..0e2b18ccdf2e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | |||
@@ -140,6 +140,21 @@ int amdgpu_job_submit(struct amdgpu_job *job, struct drm_sched_entity *entity, | |||
140 | return 0; | 140 | return 0; |
141 | } | 141 | } |
142 | 142 | ||
143 | int amdgpu_job_submit_direct(struct amdgpu_job *job, struct amdgpu_ring *ring, | ||
144 | struct dma_fence **fence) | ||
145 | { | ||
146 | int r; | ||
147 | |||
148 | job->base.sched = &ring->sched; | ||
149 | r = amdgpu_ib_schedule(ring, job->num_ibs, job->ibs, NULL, fence); | ||
150 | job->fence = dma_fence_get(*fence); | ||
151 | if (r) | ||
152 | return r; | ||
153 | |||
154 | amdgpu_job_free(job); | ||
155 | return 0; | ||
156 | } | ||
157 | |||
143 | static struct dma_fence *amdgpu_job_dependency(struct drm_sched_job *sched_job, | 158 | static struct dma_fence *amdgpu_job_dependency(struct drm_sched_job *sched_job, |
144 | struct drm_sched_entity *s_entity) | 159 | struct drm_sched_entity *s_entity) |
145 | { | 160 | { |