diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0541-drm-amdgpu-move-scheduler-fence-callback-into-fence-.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0541-drm-amdgpu-move-scheduler-fence-callback-into-fence-.patch | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/common/recipes-kernel/linux/files/0541-drm-amdgpu-move-scheduler-fence-callback-into-fence-.patch b/common/recipes-kernel/linux/files/0541-drm-amdgpu-move-scheduler-fence-callback-into-fence-.patch deleted file mode 100644 index 64034659..00000000 --- a/common/recipes-kernel/linux/files/0541-drm-amdgpu-move-scheduler-fence-callback-into-fence-.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 258f3f99d514172aa5a9df15e6d6ebe33aad2f55 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> -Date: Mon, 31 Aug 2015 17:02:52 +0200 -Subject: [PATCH 0541/1050] drm/amdgpu: move scheduler fence callback into - fence v2 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -And call the processed callback directly after submitting the job. - -v2: split adding error handling into separate patch. - -Signed-off-by: Christian König <christian.koenig@amd.com> -Reviewed-by: Chunming Zhou <david1.zhou@amd.com> -Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> -Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> ---- - drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 21 +++++++++++---------- - drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 +- - 2 files changed, 12 insertions(+), 11 deletions(-) - -diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -index 905fd30..92b000d 100644 ---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -@@ -319,15 +319,13 @@ amd_sched_select_job(struct amd_gpu_scheduler *sched) - - static void amd_sched_process_job(struct fence *f, struct fence_cb *cb) - { -- struct amd_sched_job *sched_job = -- container_of(cb, struct amd_sched_job, cb); -- struct amd_gpu_scheduler *sched; -+ struct amd_sched_fence *s_fence = -+ container_of(cb, struct amd_sched_fence, cb); -+ struct amd_gpu_scheduler *sched = s_fence->scheduler; - -- sched = sched_job->sched; -- amd_sched_fence_signal(sched_job->s_fence); - atomic_dec(&sched->hw_rq_count); -- fence_put(&sched_job->s_fence->base); -- sched->ops->process_job(sched_job); -+ amd_sched_fence_signal(s_fence); -+ fence_put(&s_fence->base); - wake_up_interruptible(&sched->wake_up_worker); - } - -@@ -341,6 +339,7 @@ static int amd_sched_main(void *param) - - while (!kthread_should_stop()) { - struct amd_sched_entity *entity; -+ struct amd_sched_fence *s_fence; - struct amd_sched_job *job; - struct fence *fence; - -@@ -352,19 +351,21 @@ static int amd_sched_main(void *param) - continue; - - entity = job->s_entity; -+ s_fence = job->s_fence; - atomic_inc(&sched->hw_rq_count); - fence = sched->ops->run_job(job); -+ sched->ops->process_job(job); - if (fence) { -- r = fence_add_callback(fence, &job->cb, -+ r = fence_add_callback(fence, &s_fence->cb, - amd_sched_process_job); - if (r == -ENOENT) -- amd_sched_process_job(fence, &job->cb); -+ amd_sched_process_job(fence, &s_fence->cb); - else if (r) - DRM_ERROR("fence add callback failed (%d)\n", r); - fence_put(fence); - } else { - DRM_ERROR("Failed to run job!\n"); -- amd_sched_process_job(NULL, &job->cb); -+ amd_sched_process_job(NULL, &s_fence->cb); - } - - count = kfifo_out(&entity->job_queue, &job, sizeof(job)); -diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -index 2af0e4d..7a0552f 100644 ---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -@@ -62,13 +62,13 @@ struct amd_sched_rq { - - struct amd_sched_fence { - struct fence base; -+ struct fence_cb cb; - struct amd_gpu_scheduler *scheduler; - spinlock_t lock; - void *owner; - }; - - struct amd_sched_job { -- struct fence_cb cb; - struct amd_gpu_scheduler *sched; - struct amd_sched_entity *s_entity; - struct amd_sched_fence *s_fence; --- -1.9.1 - |