diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1741-drm-amdgpu-Clear-active-for-HIQ-in-RLC_CP_SCHEDULER.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/1741-drm-amdgpu-Clear-active-for-HIQ-in-RLC_CP_SCHEDULER.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1741-drm-amdgpu-Clear-active-for-HIQ-in-RLC_CP_SCHEDULER.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1741-drm-amdgpu-Clear-active-for-HIQ-in-RLC_CP_SCHEDULER.patch new file mode 100644 index 00000000..c5caf8eb --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1741-drm-amdgpu-Clear-active-for-HIQ-in-RLC_CP_SCHEDULER.patch @@ -0,0 +1,58 @@ +From d74ff72ad1fb1f5aec87f9c642bfdca11958b884 Mon Sep 17 00:00:00 2001 +From: Shaoyun Liu <Shaoyun.Liu@amd.com> +Date: Wed, 19 Jul 2017 16:16:49 -0400 +Subject: [PATCH 1741/4131] drm/amdgpu: Clear active for HIQ in + RLC_CP_SCHEDULER + +Change-Id: I780e276983ba5a3bf077d274c84eb168585c806a +Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com> +Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 4 ++++ + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 5 +++++ + 2 files changed, 9 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c +index 14751de..ca03dde 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c +@@ -620,9 +620,13 @@ static int kgd_hqd_destroy(struct kgd_dev *kgd, void *mqd, + enum hqd_dequeue_request_type type; + unsigned long flags, end_jiffies; + int retry; ++ struct vi_mqd *m = get_mqd(mqd); + + acquire_queue(kgd, pipe_id, queue_id); + ++ if (m->cp_hqd_vmid == 0) ++ WREG32_FIELD(RLC_CP_SCHEDULERS, scheduler1, 0); ++ + switch (reset_type) { + case KFD_PREEMPT_TYPE_WAVEFRONT_DRAIN: + type = DRAIN_PIPE; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +index 2a3d0b7..dd3499a 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +@@ -755,6 +755,8 @@ static int kgd_hqd_destroy(struct kgd_dev *kgd, void *mqd, + enum hqd_dequeue_request_type type; + unsigned long end_jiffies; + uint32_t temp; ++ struct v9_mqd *m = get_mqd(mqd); ++ + #if 0 + unsigned long flags; + int retry; +@@ -762,6 +764,9 @@ static int kgd_hqd_destroy(struct kgd_dev *kgd, void *mqd, + + acquire_queue(kgd, pipe_id, queue_id); + ++ if (m->cp_hqd_vmid == 0) ++ WREG32_FIELD15(GC, 0, RLC_CP_SCHEDULERS, scheduler1, 0); ++ + switch (reset_type) { + case KFD_PREEMPT_TYPE_WAVEFRONT_DRAIN: + type = DRAIN_PIPE; +-- +2.7.4 + |