aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/1248-drm-amdgpu-Only-add-rqs-for-initialized-rings.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/1248-drm-amdgpu-Only-add-rqs-for-initialized-rings.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/1248-drm-amdgpu-Only-add-rqs-for-initialized-rings.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/1248-drm-amdgpu-Only-add-rqs-for-initialized-rings.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/1248-drm-amdgpu-Only-add-rqs-for-initialized-rings.patch
new file mode 100644
index 00000000..e9f0afac
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/1248-drm-amdgpu-Only-add-rqs-for-initialized-rings.patch
@@ -0,0 +1,54 @@
+From cccbbee881d554428a0497227ed2ce87c6aad56d Mon Sep 17 00:00:00 2001
+From: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
+Date: Wed, 30 Jan 2019 02:53:20 +0100
+Subject: [PATCH 1248/2940] drm/amdgpu: Only add rqs for initialized rings.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+I don't see another way to figure out if a ring is initialized if
+the hardware block might not be initialized.
+
+Entities have been fixed up to handle num_rqs = 0.
+
+Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+index 9c704f958d0e..f0f22e20a747 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+@@ -126,6 +126,7 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev,
+ struct amdgpu_ring *rings[AMDGPU_MAX_RINGS];
+ struct drm_sched_rq *rqs[AMDGPU_MAX_RINGS];
+ unsigned num_rings;
++ unsigned num_rqs = 0;
+
+ switch (i) {
+ case AMDGPU_HW_IP_GFX:
+@@ -168,12 +169,16 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev,
+ break;
+ }
+
+- for (j = 0; j < num_rings; ++j)
+- rqs[j] = &rings[j]->sched.sched_rq[priority];
++ for (j = 0; j < num_rings; ++j) {
++ if (!rings[j]->adev)
++ continue;
++
++ rqs[num_rqs++] = &rings[j]->sched.sched_rq[priority];
++ }
+
+ for (j = 0; j < amdgpu_ctx_num_entities[i]; ++j)
+ r = drm_sched_entity_init(&ctx->entities[i][j].entity,
+- rqs, num_rings, &ctx->guilty);
++ rqs, num_rqs, &ctx->guilty);
+ if (r)
+ goto error_cleanup_entities;
+ }
+--
+2.17.1
+