summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
diff options
context:
space:
mode:
authorJammy Zhou2015-07-31 10:47:28 +0200
committerAlex Deucher2015-08-17 22:50:56 +0200
commitea199cc9f825f3ef5aab3db5f00dcc639f8a8b02 (patch)
tree1297194f3cec9c09ae474d6eda80ed8db7c40d6e /drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
parentdrm/amdgpu: some code refinement v2 (diff)
downloadkernel-qcow2-linux-ea199cc9f825f3ef5aab3db5f00dcc639f8a8b02.tar.gz
kernel-qcow2-linux-ea199cc9f825f3ef5aab3db5f00dcc639f8a8b02.tar.xz
kernel-qcow2-linux-ea199cc9f825f3ef5aab3db5f00dcc639f8a8b02.zip
drm/amdgpu: return new seq_no for amd_sched_push_job
It is clean to update last_queued_v_seq in the scheduler module Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/scheduler/gpu_scheduler.c')
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index 89799eb86083..2c4c261ff928 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
@@ -293,12 +293,9 @@ int amd_context_entity_fini(struct amd_gpu_scheduler *sched,
* @sched The pointer to the scheduler
* @c_entity The pointer to amd_context_entity
* @job The pointer to job required to submit
- * return 0 if succeed. -1 if failed.
- * -2 indicate queue is full for this client, client should wait untill
- * scheduler consum some queued command.
- * -1 other fail.
+ * return the virtual sequence number
*/
-int amd_sched_push_job(struct amd_gpu_scheduler *sched,
+uint64_t amd_sched_push_job(struct amd_gpu_scheduler *sched,
struct amd_context_entity *c_entity,
void *job)
{
@@ -312,7 +309,8 @@ int amd_sched_push_job(struct amd_gpu_scheduler *sched,
}
wake_up_interruptible(&sched->wait_queue);
- return 0;
+
+ return atomic64_inc_return(&c_entity->last_queued_v_seq);
}
/**