aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0689-drm-amdgpu-cleanup-scheduler-command-submission.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0689-drm-amdgpu-cleanup-scheduler-command-submission.patch')
-rw-r--r--common/recipes-kernel/linux/files/0689-drm-amdgpu-cleanup-scheduler-command-submission.patch151
1 files changed, 0 insertions, 151 deletions
diff --git a/common/recipes-kernel/linux/files/0689-drm-amdgpu-cleanup-scheduler-command-submission.patch b/common/recipes-kernel/linux/files/0689-drm-amdgpu-cleanup-scheduler-command-submission.patch
deleted file mode 100644
index 376cc590..00000000
--- a/common/recipes-kernel/linux/files/0689-drm-amdgpu-cleanup-scheduler-command-submission.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 984810fc45389c545719fbb4219e8a12b27032a4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Sat, 14 Nov 2015 21:05:35 +0100
-Subject: [PATCH 0689/1565] drm/amdgpu: cleanup scheduler command submission
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Unify the two code path again, cause they do pretty much the same thing.
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Reviewed-by: Chunming Zhou <davdi1.zhou@amd.com>
-Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 63 +++++++++++++---------------------
- 2 files changed, 25 insertions(+), 39 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index 0f18702..0ce5c1e 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -1210,6 +1210,7 @@ struct amdgpu_cs_parser {
- /* relocations */
- struct amdgpu_bo_list_entry *vm_bos;
- struct list_head validated;
-+ struct fence *fence;
-
- struct amdgpu_ib *ibs;
- uint32_t num_ibs;
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-index 6096eff..3afcf02 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-@@ -439,8 +439,18 @@ static int cmp_size_smaller_first(void *priv, struct list_head *a,
- return (int)la->robj->tbo.num_pages - (int)lb->robj->tbo.num_pages;
- }
-
--static void amdgpu_cs_parser_fini_early(struct amdgpu_cs_parser *parser, int error, bool backoff)
-+/**
-+ * cs_parser_fini() - clean parser states
-+ * @parser: parser structure holding parsing context.
-+ * @error: error number
-+ *
-+ * If error is set than unvalidate buffer, otherwise just free memory
-+ * used by parsing context.
-+ **/
-+static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser, int error, bool backoff)
- {
-+ unsigned i;
-+
- if (!error) {
- /* Sort the buffer list from the smallest to largest buffer,
- * which affects the order of buffers in the LRU list.
-@@ -455,17 +465,13 @@ static void amdgpu_cs_parser_fini_early(struct amdgpu_cs_parser *parser, int err
- list_sort(NULL, &parser->validated, cmp_size_smaller_first);
-
- ttm_eu_fence_buffer_objects(&parser->ticket,
-- &parser->validated,
-- &parser->ibs[parser->num_ibs-1].fence->base);
-+ &parser->validated,
-+ parser->fence);
- } else if (backoff) {
- ttm_eu_backoff_reservation(&parser->ticket,
- &parser->validated);
- }
--}
--
--static void amdgpu_cs_parser_fini_late(struct amdgpu_cs_parser *parser)
--{
-- unsigned i;
-+ fence_put(parser->fence);
-
- if (parser->ctx)
- amdgpu_ctx_put(parser->ctx);
-@@ -484,20 +490,6 @@ static void amdgpu_cs_parser_fini_late(struct amdgpu_cs_parser *parser)
- drm_gem_object_unreference_unlocked(&parser->uf.bo->gem_base);
- }
-
--/**
-- * cs_parser_fini() - clean parser states
-- * @parser: parser structure holding parsing context.
-- * @error: error number
-- *
-- * If error is set than unvalidate buffer, otherwise just free memory
-- * used by parsing context.
-- **/
--static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser, int error, bool backoff)
--{
-- amdgpu_cs_parser_fini_early(parser, error, backoff);
-- amdgpu_cs_parser_fini_late(parser);
--}
--
- static int amdgpu_bo_vm_update_pte(struct amdgpu_cs_parser *p,
- struct amdgpu_vm *vm)
- {
-@@ -582,15 +574,9 @@ static int amdgpu_cs_ib_vm_chunk(struct amdgpu_device *adev,
- }
-
- r = amdgpu_bo_vm_update_pte(parser, vm);
-- if (r) {
-- goto out;
-- }
-- amdgpu_cs_sync_rings(parser);
-- if (!amdgpu_enable_scheduler)
-- r = amdgpu_ib_schedule(adev, parser->num_ibs, parser->ibs,
-- parser->filp);
-+ if (!r)
-+ amdgpu_cs_sync_rings(parser);
-
--out:
- return r;
- }
-
-@@ -881,7 +867,7 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- goto out;
- }
- job->base.s_fence = fence;
-- fence_get(&fence->base);
-+ parser.fence = fence_get(&fence->base);
-
- cs->out.handle = amdgpu_ctx_add_fence(parser.ctx, ring,
- &fence->base);
-@@ -890,17 +876,16 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- trace_amdgpu_cs_ioctl(job);
- amd_sched_entity_push_job(&job->base);
-
-- list_sort(NULL, &parser.validated, cmp_size_smaller_first);
-- ttm_eu_fence_buffer_objects(&parser.ticket, &parser.validated,
-- &fence->base);
-- fence_put(&fence->base);
-+ } else {
-+ struct amdgpu_fence *fence;
-
-- amdgpu_cs_parser_fini_late(&parser);
-- mutex_unlock(&vm->mutex);
-- return 0;
-+ r = amdgpu_ib_schedule(adev, parser.num_ibs, parser.ibs,
-+ parser.filp);
-+ fence = parser.ibs[parser.num_ibs - 1].fence;
-+ parser.fence = fence_get(&fence->base);
-+ cs->out.handle = parser.ibs[parser.num_ibs - 1].sequence;
- }
-
-- cs->out.handle = parser.ibs[parser.num_ibs - 1].sequence;
- out:
- amdgpu_cs_parser_fini(&parser, r, reserved_buffers);
- mutex_unlock(&vm->mutex);
---
-1.9.1
-