diff options
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.patch | 66 |
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 + |