aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-05-06 09:57:42 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-05-11 13:30:31 -0400
commit92f250989b7098f4b52d50183a7b2fc4e010731b (patch)
tree27e9b9a83675ce36313a789dac7ad27a827d671f /drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
parentf153d2867bf74f84d47f67c377a8e3a34865e562 (diff)
drm/amdgpu: move the context from the IBs into the job
We only have one context for all IBs. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index 87ec1136a0bb..2895d63c9979 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -741,7 +741,6 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev,
741 741
742 ib->length_dw = chunk_ib->ib_bytes / 4; 742 ib->length_dw = chunk_ib->ib_bytes / 4;
743 ib->flags = chunk_ib->flags; 743 ib->flags = chunk_ib->flags;
744 ib->ctx = parser->ctx->rings[ring->idx].entity.fence_context;
745 j++; 744 j++;
746 } 745 }
747 746
@@ -840,6 +839,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
840 union drm_amdgpu_cs *cs) 839 union drm_amdgpu_cs *cs)
841{ 840{
842 struct amdgpu_ring *ring = p->job->ring; 841 struct amdgpu_ring *ring = p->job->ring;
842 struct amd_sched_entity *entity = &p->ctx->rings[ring->idx].entity;
843 struct fence *fence; 843 struct fence *fence;
844 struct amdgpu_job *job; 844 struct amdgpu_job *job;
845 int r; 845 int r;
@@ -848,16 +848,16 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
848 p->job = NULL; 848 p->job = NULL;
849 849
850 r = amd_sched_job_init(&job->base, &ring->sched, 850 r = amd_sched_job_init(&job->base, &ring->sched,
851 &p->ctx->rings[ring->idx].entity, 851 entity, amdgpu_job_timeout_func,
852 amdgpu_job_timeout_func, 852 amdgpu_job_free_func,
853 amdgpu_job_free_func, 853 p->filp, &fence);
854 p->filp, &fence);
855 if (r) { 854 if (r) {
856 amdgpu_job_free(job); 855 amdgpu_job_free(job);
857 return r; 856 return r;
858 } 857 }
859 858
860 job->owner = p->filp; 859 job->owner = p->filp;
860 job->ctx = entity->fence_context;
861 p->fence = fence_get(fence); 861 p->fence = fence_get(fence);
862 cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, fence); 862 cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, fence);
863 job->ibs[job->num_ibs - 1].sequence = cs->out.handle; 863 job->ibs[job->num_ibs - 1].sequence = cs->out.handle;