aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0196-drm-amdgpu-add-flags-for-amdgpu_ib-structure.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0196-drm-amdgpu-add-flags-for-amdgpu_ib-structure.patch')
-rw-r--r--common/recipes-kernel/linux/files/0196-drm-amdgpu-add-flags-for-amdgpu_ib-structure.patch111
1 files changed, 111 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0196-drm-amdgpu-add-flags-for-amdgpu_ib-structure.patch b/common/recipes-kernel/linux/files/0196-drm-amdgpu-add-flags-for-amdgpu_ib-structure.patch
new file mode 100644
index 00000000..b2ff301d
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0196-drm-amdgpu-add-flags-for-amdgpu_ib-structure.patch
@@ -0,0 +1,111 @@
+From de807f818b953f11b9a132a2d1997711a79bbfa3 Mon Sep 17 00:00:00 2001
+From: Jammy Zhou <Jammy.Zhou@amd.com>
+Date: Mon, 11 May 2015 23:41:41 +0800
+Subject: [PATCH 0196/1050] drm/amdgpu: add flags for amdgpu_ib structure
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 +--
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 6 ++----
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +-
+ 5 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index a88302c..aaa62f3 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -892,13 +892,12 @@ struct amdgpu_ib {
+ struct amdgpu_fence *fence;
+ struct amdgpu_user_fence *user;
+ struct amdgpu_vm *vm;
+- bool is_const_ib;
+ bool flush_hdp_writefifo;
+ struct amdgpu_sync sync;
+- bool gds_needed;
+ uint32_t gds_base, gds_size;
+ uint32_t gws_base, gws_size;
+ uint32_t oa_base, oa_size;
++ uint32_t flags;
+ };
+
+ enum amdgpu_ring_type {
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 1035e44..de17f84 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -638,10 +638,8 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev,
+ }
+ ib->length_dw = chunk_ib->ib_bytes / 4;
+
+- if (chunk_ib->flags & AMDGPU_IB_FLAG_CE)
+- ib->is_const_ib = true;
+- if (chunk_ib->flags & AMDGPU_IB_FLAG_GDS)
+- ib->gds_needed = true;
++ ib->flags = chunk_ib->flags;
++
+ if ((ib->ring->current_filp != parser->filp) ||
+ (ib->ring->current_ctx != parser->ctx_id)) {
+ ib->ring->need_ctx_switch = true;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+index 847cab2..a83ff03 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+@@ -88,13 +88,13 @@ int amdgpu_ib_get(struct amdgpu_ring *ring, struct amdgpu_vm *vm,
+ ib->fence = NULL;
+ ib->user = NULL;
+ ib->vm = vm;
+- ib->is_const_ib = false;
+ ib->gds_base = 0;
+ ib->gds_size = 0;
+ ib->gws_base = 0;
+ ib->gws_size = 0;
+ ib->oa_base = 0;
+ ib->oa_size = 0;
++ ib->flags = 0;
+
+ return 0;
+ }
+@@ -179,7 +179,7 @@ int amdgpu_ib_schedule(struct amdgpu_device *adev, unsigned num_ibs,
+ amdgpu_vm_flush(ring, vm, ib->sync.last_vm_update);
+ }
+
+- if (ring->funcs->emit_gds_switch && ib->vm && ib->gds_needed)
++ if (ring->funcs->emit_gds_switch && ib->vm && (ib->flags & AMDGPU_IB_FLAG_GDS))
+ amdgpu_ring_emit_gds_switch(ring, ib->vm->ids[ring->idx].id,
+ ib->gds_base, ib->gds_size,
+ ib->gws_base, ib->gws_size,
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+index 26df23e..7428c43 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+@@ -2544,7 +2544,7 @@ static void gfx_v7_0_ring_emit_ib(struct amdgpu_ring *ring,
+ ring->need_ctx_switch = false;
+ }
+
+- if (ib->is_const_ib)
++ if (ib->flags & AMDGPU_IB_FLAG_CE)
+ header = PACKET3(PACKET3_INDIRECT_BUFFER_CONST, 2);
+ else
+ header = PACKET3(PACKET3_INDIRECT_BUFFER, 2);
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+index 3762998..48de920 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+@@ -3673,7 +3673,7 @@ static void gfx_v8_0_ring_emit_ib(struct amdgpu_ring *ring,
+ ring->need_ctx_switch = false;
+ }
+
+- if (ib->is_const_ib)
++ if (ib->flags & AMDGPU_IB_FLAG_CE)
+ header = PACKET3(PACKET3_INDIRECT_BUFFER_CONST, 2);
+ else
+ header = PACKET3(PACKET3_INDIRECT_BUFFER, 2);
+--
+1.9.1
+