summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-02-01 14:53:58 +0300
committerAlex Deucher <alexander.deucher@amd.com>2016-02-12 23:35:16 +0300
commit2bd9ccfa75e96ba278b96d817bc2135eb761adbd (patch)
tree03c099bd0178fb166a07b107b827da4346da5b7e /drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
parentc41d271d751ea023f67f1ea755e144b49079b6d5 (diff)
downloadlinux-2bd9ccfa75e96ba278b96d817bc2135eb761adbd.tar.xz
drm/amdgpu: use per VM entity for page table updates (v2)
Updates from different VMs can be processed independently. v2: agd: rebase on upstream Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-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.c8
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)
}
int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring,
- void *owner, struct fence **f)
+ struct amd_sched_entity *entity, void *owner,
+ struct fence **f)
{
struct amdgpu_device *adev = job->adev;
+ if (!entity)
+ entity = &adev->kernel_ctx.rings[ring->idx].entity;
+
job->ring = ring;
job->base.sched = &ring->sched;
- job->base.s_entity = &adev->kernel_ctx.rings[ring->idx].entity;
+ job->base.s_entity = entity;
job->base.s_fence = amd_sched_fence_create(job->base.s_entity, owner);
if (!job->base.s_fence)
return -ENOMEM;