diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_job.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c index 0f6719e0ace0..97db6beeca13 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | |||
@@ -80,13 +80,17 @@ void amdgpu_job_free(struct amdgpu_job *job) | |||
80 | } | 80 | } |
81 | 81 | ||
82 | int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring, | 82 | int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring, |
83 | void *owner, struct fence **f) | 83 | struct amd_sched_entity *entity, void *owner, |
84 | struct fence **f) | ||
84 | { | 85 | { |
85 | struct amdgpu_device *adev = job->adev; | 86 | struct amdgpu_device *adev = job->adev; |
86 | 87 | ||
88 | if (!entity) | ||
89 | entity = &adev->kernel_ctx.rings[ring->idx].entity; | ||
90 | |||
87 | job->ring = ring; | 91 | job->ring = ring; |
88 | job->base.sched = &ring->sched; | 92 | job->base.sched = &ring->sched; |
89 | job->base.s_entity = &adev->kernel_ctx.rings[ring->idx].entity; | 93 | job->base.s_entity = entity; |
90 | job->base.s_fence = amd_sched_fence_create(job->base.s_entity, owner); | 94 | job->base.s_fence = amd_sched_fence_create(job->base.s_entity, owner); |
91 | if (!job->base.s_fence) | 95 | if (!job->base.s_fence) |
92 | return -ENOMEM; | 96 | return -ENOMEM; |