aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0424-drm-amdgpu-return-new-seq_no-for-amd_sched_push_job.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0424-drm-amdgpu-return-new-seq_no-for-amd_sched_push_job.patch')
-rw-r--r--common/recipes-kernel/linux/files/0424-drm-amdgpu-return-new-seq_no-for-amd_sched_push_job.patch203
1 files changed, 0 insertions, 203 deletions
diff --git a/common/recipes-kernel/linux/files/0424-drm-amdgpu-return-new-seq_no-for-amd_sched_push_job.patch b/common/recipes-kernel/linux/files/0424-drm-amdgpu-return-new-seq_no-for-amd_sched_push_job.patch
deleted file mode 100644
index 27459de5..00000000
--- a/common/recipes-kernel/linux/files/0424-drm-amdgpu-return-new-seq_no-for-amd_sched_push_job.patch
+++ /dev/null
@@ -1,203 +0,0 @@
-From ea199cc9f825f3ef5aab3db5f00dcc639f8a8b02 Mon Sep 17 00:00:00 2001
-From: Jammy Zhou <Jammy.Zhou@amd.com>
-Date: Fri, 31 Jul 2015 16:47:28 +0800
-Subject: [PATCH 0424/1050] drm/amdgpu: return new seq_no for
- amd_sched_push_job
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-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>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 ++---
- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 9 ++-------
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 27 ++++++---------------------
- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 10 ++++------
- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 +-
- 5 files changed, 15 insertions(+), 38 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-index fda7792..468f884 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-@@ -907,8 +907,6 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- if (amdgpu_enable_scheduler && parser->num_ibs) {
- struct amdgpu_ring * ring =
- amdgpu_cs_parser_get_ring(adev, parser);
-- parser->ibs[parser->num_ibs - 1].sequence = atomic64_inc_return(
-- &parser->ctx->rings[ring->idx].c_entity.last_queued_v_seq);
- if (ring->is_pte_ring || (parser->bo_list && parser->bo_list->has_userptr)) {
- r = amdgpu_cs_parser_prepare_job(parser);
- if (r)
-@@ -918,7 +916,8 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- parser->ring = ring;
- parser->run_job = amdgpu_cs_parser_run_job;
- parser->free_job = amdgpu_cs_parser_free_job;
-- amd_sched_push_job(ring->scheduler,
-+ parser->ibs[parser->num_ibs - 1].sequence =
-+ amd_sched_push_job(ring->scheduler,
- &parser->ctx->rings[ring->idx].c_entity,
- parser);
- cs->out.handle = parser->ibs[parser->num_ibs - 1].sequence;
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
-index 788dd348..8c01c51 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
-@@ -109,7 +109,6 @@ int amdgpu_sched_ib_submit_kernel_helper(struct amdgpu_device *adev,
- {
- int r = 0;
- if (amdgpu_enable_scheduler) {
-- uint64_t v_seq;
- struct amdgpu_cs_parser *sched_job =
- amdgpu_cs_parser_create(adev,
- owner,
-@@ -119,16 +118,12 @@ int amdgpu_sched_ib_submit_kernel_helper(struct amdgpu_device *adev,
- return -ENOMEM;
- }
- sched_job->free_job = free_job;
-- v_seq = atomic64_inc_return(&adev->kernel_ctx->rings[ring->idx].c_entity.last_queued_v_seq);
-- ibs[num_ibs - 1].sequence = v_seq;
-- amd_sched_push_job(ring->scheduler,
-+ ibs[num_ibs - 1].sequence = amd_sched_push_job(ring->scheduler,
- &adev->kernel_ctx->rings[ring->idx].c_entity,
- sched_job);
- r = amd_sched_wait_emit(
- &adev->kernel_ctx->rings[ring->idx].c_entity,
-- v_seq,
-- false,
-- -1);
-+ ibs[num_ibs - 1].sequence, false, -1);
- if (r)
- WARN(true, "emit timeout\n");
- } else
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-index d90254f..ab9c65a 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -371,7 +371,6 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
-
- if (amdgpu_enable_scheduler) {
- int r;
-- uint64_t v_seq;
- sched_job = amdgpu_cs_parser_create(adev, AMDGPU_FENCE_OWNER_VM,
- adev->kernel_ctx, ib, 1);
- if(!sched_job)
-@@ -379,15 +378,11 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
- sched_job->job_param.vm.bo = bo;
- sched_job->run_job = amdgpu_vm_run_job;
- sched_job->free_job = amdgpu_vm_free_job;
-- v_seq = atomic64_inc_return(&adev->kernel_ctx->rings[ring->idx].c_entity.last_queued_v_seq);
-- ib->sequence = v_seq;
-- amd_sched_push_job(ring->scheduler,
-+ ib->sequence = amd_sched_push_job(ring->scheduler,
- &adev->kernel_ctx->rings[ring->idx].c_entity,
- sched_job);
- r = amd_sched_wait_emit(&adev->kernel_ctx->rings[ring->idx].c_entity,
-- v_seq,
-- false,
-- -1);
-+ ib->sequence, false, -1);
- if (r)
- DRM_ERROR("emit timeout\n");
-
-@@ -521,7 +516,6 @@ int amdgpu_vm_update_page_directory(struct amdgpu_device *adev,
-
- if (amdgpu_enable_scheduler) {
- int r;
-- uint64_t v_seq;
- sched_job = amdgpu_cs_parser_create(adev, AMDGPU_FENCE_OWNER_VM,
- adev->kernel_ctx,
- ib, 1);
-@@ -530,15 +524,11 @@ int amdgpu_vm_update_page_directory(struct amdgpu_device *adev,
- sched_job->job_param.vm.bo = pd;
- sched_job->run_job = amdgpu_vm_run_job;
- sched_job->free_job = amdgpu_vm_free_job;
-- v_seq = atomic64_inc_return(&adev->kernel_ctx->rings[ring->idx].c_entity.last_queued_v_seq);
-- ib->sequence = v_seq;
-- amd_sched_push_job(ring->scheduler,
-+ ib->sequence = amd_sched_push_job(ring->scheduler,
- &adev->kernel_ctx->rings[ring->idx].c_entity,
- sched_job);
- r = amd_sched_wait_emit(&adev->kernel_ctx->rings[ring->idx].c_entity,
-- v_seq,
-- false,
-- -1);
-+ ib->sequence, false, -1);
- if (r)
- DRM_ERROR("emit timeout\n");
- } else {
-@@ -872,7 +862,6 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
-
- if (amdgpu_enable_scheduler) {
- int r;
-- uint64_t v_seq;
- sched_job = amdgpu_cs_parser_create(adev, AMDGPU_FENCE_OWNER_VM,
- adev->kernel_ctx, ib, 1);
- if(!sched_job)
-@@ -883,15 +872,11 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
- sched_job->job_param.vm_mapping.fence = fence;
- sched_job->run_job = amdgpu_vm_bo_update_mapping_run_job;
- sched_job->free_job = amdgpu_vm_free_job;
-- v_seq = atomic64_inc_return(&adev->kernel_ctx->rings[ring->idx].c_entity.last_queued_v_seq);
-- ib->sequence = v_seq;
-- amd_sched_push_job(ring->scheduler,
-+ ib->sequence = amd_sched_push_job(ring->scheduler,
- &adev->kernel_ctx->rings[ring->idx].c_entity,
- sched_job);
- r = amd_sched_wait_emit(&adev->kernel_ctx->rings[ring->idx].c_entity,
-- v_seq,
-- false,
-- -1);
-+ ib->sequence, false, -1);
- if (r)
- DRM_ERROR("emit timeout\n");
- } else {
-diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
-index 89799eb..2c4c261 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);
- }
-
- /**
-diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
-index 9ab3adc..37dd637 100644
---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
-+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
-@@ -129,7 +129,7 @@ struct amd_gpu_scheduler *amd_sched_create(void *device,
-
- int amd_sched_destroy(struct amd_gpu_scheduler *sched);
-
--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);
-
---
-1.9.1
-