aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2062-drm-amdgpu-don-t-change-ctx-reset_couner-upon-query.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2062-drm-amdgpu-don-t-change-ctx-reset_couner-upon-query.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2062-drm-amdgpu-don-t-change-ctx-reset_couner-upon-query.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2062-drm-amdgpu-don-t-change-ctx-reset_couner-upon-query.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2062-drm-amdgpu-don-t-change-ctx-reset_couner-upon-query.patch
new file mode 100644
index 00000000..ffd7c842
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2062-drm-amdgpu-don-t-change-ctx-reset_couner-upon-query.patch
@@ -0,0 +1,66 @@
+From f9a4198d7a1e98aeb2aa9c92558cc99450354298 Mon Sep 17 00:00:00 2001
+From: Monk Liu <Monk.Liu@amd.com>
+Date: Tue, 17 Oct 2017 14:39:23 +0800
+Subject: [PATCH 2062/4131] drm/amdgpu:don't change ctx->reset_couner upon
+ query
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+reset_counter marks the reset counter number once the context
+is created, shouldn't be changed due to query.
+
+To keep U/K interface on the ctx_query and keep ctx's reset_counter
+logic compatible with GPU RESET feature, now use another var named
+"reset_counter_query" to replace the original checked & updated in
+amdgpu_ctx_query.
+
+Change-Id: I369e0b5bb8ea1443750ef2ac5b8a021a09fd5782
+Signed-off-by: Monk Liu <Monk.Liu@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 5 +++--
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index 96c1e3f..7c9e988 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -756,6 +756,7 @@ struct amdgpu_ctx {
+ struct amdgpu_device *adev;
+ struct amdgpu_queue_mgr queue_mgr;
+ unsigned reset_counter;
++ unsigned reset_counter_query;
+ uint32_t vram_lost_counter;
+ spinlock_t ring_lock;
+ struct dma_fence **fences;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+index 04f7b4b..51cb1ff 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+@@ -77,6 +77,7 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev,
+ }
+
+ ctx->reset_counter = atomic_read(&adev->gpu_reset_counter);
++ ctx->reset_counter_query = ctx->reset_counter;
+ ctx->vram_lost_counter = atomic_read(&adev->vram_lost_counter);
+ ctx->init_priority = priority;
+ ctx->override_priority = AMD_SCHED_PRIORITY_UNSET;
+@@ -233,11 +234,11 @@ static int amdgpu_ctx_query(struct amdgpu_device *adev,
+ /* determine if a GPU reset has occured since the last call */
+ reset_counter = atomic_read(&adev->gpu_reset_counter);
+ /* TODO: this should ideally return NO, GUILTY, or INNOCENT. */
+- if (ctx->reset_counter == reset_counter)
++ if (ctx->reset_counter_query == reset_counter)
+ out->state.reset_status = AMDGPU_CTX_NO_RESET;
+ else
+ out->state.reset_status = AMDGPU_CTX_UNKNOWN_RESET;
+- ctx->reset_counter = reset_counter;
++ ctx->reset_counter_query = reset_counter;
+
+ mutex_unlock(&mgr->lock);
+ return 0;
+--
+2.7.4
+