aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0676-drm-amdgpu-cleanup-amdgpu_cs_parser-handling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0676-drm-amdgpu-cleanup-amdgpu_cs_parser-handling.patch')
-rw-r--r--common/recipes-kernel/linux/files/0676-drm-amdgpu-cleanup-amdgpu_cs_parser-handling.patch220
1 files changed, 0 insertions, 220 deletions
diff --git a/common/recipes-kernel/linux/files/0676-drm-amdgpu-cleanup-amdgpu_cs_parser-handling.patch b/common/recipes-kernel/linux/files/0676-drm-amdgpu-cleanup-amdgpu_cs_parser-handling.patch
deleted file mode 100644
index 415f66cd..00000000
--- a/common/recipes-kernel/linux/files/0676-drm-amdgpu-cleanup-amdgpu_cs_parser-handling.patch
+++ /dev/null
@@ -1,220 +0,0 @@
-From 7e52a81c2f0326a85d3ebc005829bcd604731c6d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Wed, 4 Nov 2015 15:44:39 +0100
-Subject: [PATCH 0676/1565] drm/amdgpu: cleanup amdgpu_cs_parser handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-No need any more to allocate that structure dynamically, just put it on the
-stack. This is a start to cleanup some of the scheduler fallouts.
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
-Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 --
- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 88 +++++++++++++---------------------
- 2 files changed, 33 insertions(+), 60 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index b801b67..7b02e34 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -2256,11 +2256,6 @@ void amdgpu_pci_config_reset(struct amdgpu_device *adev);
- bool amdgpu_card_posted(struct amdgpu_device *adev);
- void amdgpu_update_display_priority(struct amdgpu_device *adev);
- bool amdgpu_boot_test_post_card(struct amdgpu_device *adev);
--struct amdgpu_cs_parser *amdgpu_cs_parser_create(struct amdgpu_device *adev,
-- struct drm_file *filp,
-- struct amdgpu_ctx *ctx,
-- struct amdgpu_ib *ibs,
-- uint32_t num_ibs);
-
- int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data);
- int amdgpu_cs_get_ring(struct amdgpu_device *adev, u32 ip_type,
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-index ecc82df..bf32096 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-@@ -127,30 +127,6 @@ int amdgpu_cs_get_ring(struct amdgpu_device *adev, u32 ip_type,
- return 0;
- }
-
--struct amdgpu_cs_parser *amdgpu_cs_parser_create(struct amdgpu_device *adev,
-- struct drm_file *filp,
-- struct amdgpu_ctx *ctx,
-- struct amdgpu_ib *ibs,
-- uint32_t num_ibs)
--{
-- struct amdgpu_cs_parser *parser;
-- int i;
--
-- parser = kzalloc(sizeof(struct amdgpu_cs_parser), GFP_KERNEL);
-- if (!parser)
-- return NULL;
--
-- parser->adev = adev;
-- parser->filp = filp;
-- parser->ctx = ctx;
-- parser->ibs = ibs;
-- parser->num_ibs = num_ibs;
-- for (i = 0; i < num_ibs; i++)
-- ibs[i].ctx = ctx;
--
-- return parser;
--}
--
- int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data)
- {
- union drm_amdgpu_cs *cs = data;
-@@ -490,6 +466,7 @@ static void amdgpu_cs_parser_fini_early(struct amdgpu_cs_parser *parser, int err
- static void amdgpu_cs_parser_fini_late(struct amdgpu_cs_parser *parser)
- {
- unsigned i;
-+
- if (parser->ctx)
- amdgpu_ctx_put(parser->ctx);
- if (parser->bo_list)
-@@ -505,7 +482,6 @@ static void amdgpu_cs_parser_fini_late(struct amdgpu_cs_parser *parser)
- kfree(parser->ibs);
- if (parser->uf.bo)
- drm_gem_object_unreference_unlocked(&parser->uf.bo->gem_base);
-- kfree(parser);
- }
-
- /**
-@@ -824,36 +800,36 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- union drm_amdgpu_cs *cs = data;
- struct amdgpu_fpriv *fpriv = filp->driver_priv;
- struct amdgpu_vm *vm = &fpriv->vm;
-- struct amdgpu_cs_parser *parser;
-+ struct amdgpu_cs_parser parser = {};
- bool reserved_buffers = false;
- int i, r;
-
- if (!adev->accel_working)
- return -EBUSY;
-
-- parser = amdgpu_cs_parser_create(adev, filp, NULL, NULL, 0);
-- if (!parser)
-- return -ENOMEM;
-- r = amdgpu_cs_parser_init(parser, data);
-+ parser.adev = adev;
-+ parser.filp = filp;
-+
-+ r = amdgpu_cs_parser_init(&parser, data);
- if (r) {
- DRM_ERROR("Failed to initialize parser !\n");
-- amdgpu_cs_parser_fini(parser, r, false);
-+ amdgpu_cs_parser_fini(&parser, r, false);
- r = amdgpu_cs_handle_lockup(adev, r);
- return r;
- }
- mutex_lock(&vm->mutex);
-- r = amdgpu_cs_parser_relocs(parser);
-+ r = amdgpu_cs_parser_relocs(&parser);
- if (r == -ENOMEM)
- DRM_ERROR("Not enough memory for command submission!\n");
- else if (r && r != -ERESTARTSYS)
- DRM_ERROR("Failed to process the buffer list %d!\n", r);
- else if (!r) {
- reserved_buffers = true;
-- r = amdgpu_cs_ib_fill(adev, parser);
-+ r = amdgpu_cs_ib_fill(adev, &parser);
- }
-
- if (!r) {
-- r = amdgpu_cs_dependencies(adev, parser);
-+ r = amdgpu_cs_dependencies(adev, &parser);
- if (r)
- DRM_ERROR("Failed in the dependencies handling %d!\n", r);
- }
-@@ -861,36 +837,38 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- if (r)
- goto out;
-
-- for (i = 0; i < parser->num_ibs; i++)
-- trace_amdgpu_cs(parser, i);
-+ for (i = 0; i < parser.num_ibs; i++)
-+ trace_amdgpu_cs(&parser, i);
-
-- r = amdgpu_cs_ib_vm_chunk(adev, parser);
-+ r = amdgpu_cs_ib_vm_chunk(adev, &parser);
- if (r)
- goto out;
-
-- if (amdgpu_enable_scheduler && parser->num_ibs) {
-+ if (amdgpu_enable_scheduler && parser.num_ibs) {
- struct amdgpu_job *job;
-- struct amdgpu_ring * ring = parser->ibs->ring;
-+ struct amdgpu_ring * ring = parser.ibs->ring;
-+
- job = kzalloc(sizeof(struct amdgpu_job), GFP_KERNEL);
- if (!job) {
- r = -ENOMEM;
- goto out;
- }
-+
- job->base.sched = &ring->sched;
-- job->base.s_entity = &parser->ctx->rings[ring->idx].entity;
-- job->adev = parser->adev;
-- job->ibs = parser->ibs;
-- job->num_ibs = parser->num_ibs;
-- job->base.owner = parser->filp;
-+ job->base.s_entity = &parser.ctx->rings[ring->idx].entity;
-+ job->adev = parser.adev;
-+ job->ibs = parser.ibs;
-+ job->num_ibs = parser.num_ibs;
-+ job->base.owner = parser.filp;
- mutex_init(&job->job_lock);
- if (job->ibs[job->num_ibs - 1].user) {
-- job->uf = parser->uf;
-+ job->uf = parser.uf;
- job->ibs[job->num_ibs - 1].user = &job->uf;
-- parser->uf.bo = NULL;
-+ parser.uf.bo = NULL;
- }
-
-- parser->ibs = NULL;
-- parser->num_ibs = 0;
-+ parser.ibs = NULL;
-+ parser.num_ibs = 0;
-
- job->free_job = amdgpu_cs_free_job;
- mutex_lock(&job->job_lock);
-@@ -902,24 +880,24 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- goto out;
- }
- cs->out.handle =
-- amdgpu_ctx_add_fence(parser->ctx, ring,
-+ amdgpu_ctx_add_fence(parser.ctx, ring,
- &job->base.s_fence->base);
- job->ibs[job->num_ibs - 1].sequence = cs->out.handle;
-
-- list_sort(NULL, &parser->validated, cmp_size_smaller_first);
-- ttm_eu_fence_buffer_objects(&parser->ticket,
-- &parser->validated,
-+ list_sort(NULL, &parser.validated, cmp_size_smaller_first);
-+ ttm_eu_fence_buffer_objects(&parser.ticket,
-+ &parser.validated,
- &job->base.s_fence->base);
-
- mutex_unlock(&job->job_lock);
-- amdgpu_cs_parser_fini_late(parser);
-+ amdgpu_cs_parser_fini_late(&parser);
- mutex_unlock(&vm->mutex);
- return 0;
- }
-
-- 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);
-+ amdgpu_cs_parser_fini(&parser, r, reserved_buffers);
- mutex_unlock(&vm->mutex);
- r = amdgpu_cs_handle_lockup(adev, r);
- return r;
---
-1.9.1
-