diff options
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5218-drm-amdgpu-Refine-gfx_v8_0_kcq_disable-function.patch')
-rw-r--r-- | meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5218-drm-amdgpu-Refine-gfx_v8_0_kcq_disable-function.patch | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5218-drm-amdgpu-Refine-gfx_v8_0_kcq_disable-function.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5218-drm-amdgpu-Refine-gfx_v8_0_kcq_disable-function.patch deleted file mode 100644 index a112e5c0..00000000 --- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5218-drm-amdgpu-Refine-gfx_v8_0_kcq_disable-function.patch +++ /dev/null @@ -1,85 +0,0 @@ -From afd02ee7a6e7a4fe8d38fa935c4ff525a42cd618 Mon Sep 17 00:00:00 2001 -From: Rex Zhu <Rex.Zhu@amd.com> -Date: Fri, 17 Aug 2018 14:57:18 +0800 -Subject: [PATCH 5218/5725] drm/amdgpu: Refine gfx_v8_0_kcq_disable function -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Send all kcq unmap_queue packets and then wait for -complete. - -Reviewed-by: Alex Deucher <alexander.deucher@amd.com> -Acked-by: Christian König <christian.koenig@amd.com> -Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 29 +++++++++++++++-------------- - 1 file changed, 15 insertions(+), 14 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c -index 275d524..4f9dff2 100644 ---- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c -@@ -5059,26 +5059,29 @@ static int gfx_v8_0_hw_init(void *handle) - return r; - } - --static int gfx_v8_0_kcq_disable(struct amdgpu_ring *kiq_ring,struct amdgpu_ring *ring) -+static int gfx_v8_0_kcq_disable(struct amdgpu_device *adev) - { -- int r; -+ int r, i; -+ struct amdgpu_ring *kiq_ring = &adev->gfx.kiq.ring; - -- r = amdgpu_ring_alloc(kiq_ring, 6); -+ r = amdgpu_ring_alloc(kiq_ring, 6 * adev->gfx.num_compute_rings); - if (r) - DRM_ERROR("Failed to lock KIQ (%d).\n", r); - -- /* unmap queues */ -- amdgpu_ring_write(kiq_ring, PACKET3(PACKET3_UNMAP_QUEUES, 4)); -- amdgpu_ring_write(kiq_ring, /* Q_sel: 0, vmid: 0, engine: 0, num_Q: 1 */ -+ for (i = 0; i < adev->gfx.num_compute_rings; i++) { -+ struct amdgpu_ring *ring = &adev->gfx.compute_ring[i]; -+ -+ amdgpu_ring_write(kiq_ring, PACKET3(PACKET3_UNMAP_QUEUES, 4)); -+ amdgpu_ring_write(kiq_ring, /* Q_sel: 0, vmid: 0, engine: 0, num_Q: 1 */ - PACKET3_UNMAP_QUEUES_ACTION(1) | /* RESET_QUEUES */ - PACKET3_UNMAP_QUEUES_QUEUE_SEL(0) | - PACKET3_UNMAP_QUEUES_ENGINE_SEL(0) | - PACKET3_UNMAP_QUEUES_NUM_QUEUES(1)); -- amdgpu_ring_write(kiq_ring, PACKET3_UNMAP_QUEUES_DOORBELL_OFFSET0(ring->doorbell_index)); -- amdgpu_ring_write(kiq_ring, 0); -- amdgpu_ring_write(kiq_ring, 0); -- amdgpu_ring_write(kiq_ring, 0); -- -+ amdgpu_ring_write(kiq_ring, PACKET3_UNMAP_QUEUES_DOORBELL_OFFSET0(ring->doorbell_index)); -+ amdgpu_ring_write(kiq_ring, 0); -+ amdgpu_ring_write(kiq_ring, 0); -+ amdgpu_ring_write(kiq_ring, 0); -+ } - r = amdgpu_ring_test_ring(kiq_ring); - if (r) - DRM_ERROR("KCQ disable failed\n"); -@@ -5089,7 +5092,6 @@ static int gfx_v8_0_kcq_disable(struct amdgpu_ring *kiq_ring,struct amdgpu_ring - static int gfx_v8_0_hw_fini(void *handle) - { - struct amdgpu_device *adev = (struct amdgpu_device *)handle; -- int i; - - amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0); - amdgpu_irq_put(adev, &adev->gfx.priv_inst_irq, 0); -@@ -5099,8 +5101,7 @@ static int gfx_v8_0_hw_fini(void *handle) - amdgpu_irq_put(adev, &adev->gfx.sq_irq, 0); - - /* disable KCQ to avoid CPC touch memory not valid anymore */ -- for (i = 0; i < adev->gfx.num_compute_rings; i++) -- gfx_v8_0_kcq_disable(&adev->gfx.kiq.ring, &adev->gfx.compute_ring[i]); -+ gfx_v8_0_kcq_disable(adev); - - if (amdgpu_sriov_vf(adev)) { - pr_debug("For SRIOV client, shouldn't do anything.\n"); --- -2.7.4 - |