aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/2171-drm-amdgpu-enable-gfx-eop-interrupt-per-gfx-pipe.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/2171-drm-amdgpu-enable-gfx-eop-interrupt-per-gfx-pipe.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/2171-drm-amdgpu-enable-gfx-eop-interrupt-per-gfx-pipe.patch125
1 files changed, 125 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/2171-drm-amdgpu-enable-gfx-eop-interrupt-per-gfx-pipe.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/2171-drm-amdgpu-enable-gfx-eop-interrupt-per-gfx-pipe.patch
new file mode 100644
index 00000000..2de935e6
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/2171-drm-amdgpu-enable-gfx-eop-interrupt-per-gfx-pipe.patch
@@ -0,0 +1,125 @@
+From 12263a0eb2992dcf2e43f33a5b5e1586a2657b0b Mon Sep 17 00:00:00 2001
+From: Hawking Zhang <Hawking.Zhang@amd.com>
+Date: Mon, 11 Mar 2019 22:04:44 +0800
+Subject: [PATCH 2171/2940] drm/amdgpu: enable gfx eop interrupt per gfx pipe
+
+Navi10 has 2 gfx pipe and need to enable gfx eop interrupt
+per pipe, instead of enable eop int for all gfx pipes at one
+time.
+
+Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 ++-
+ drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 4 ++--
+ 5 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index ed0a66f842b3..c39153c2869a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -216,7 +216,8 @@ struct amdgpu_atif;
+ struct kfd_vm_fault_info;
+
+ enum amdgpu_cp_irq {
+- AMDGPU_CP_IRQ_GFX_EOP = 0,
++ AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP = 0,
++ AMDGPU_CP_IRQ_GFX_ME0_PIPE1_EOP,
+ AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP,
+ AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE1_EOP,
+ AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE2_EOP,
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
+index c0cb244f58cd..0745370493f3 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
+@@ -3113,7 +3113,7 @@ static int gfx_v6_0_sw_init(void *handle)
+ ring->ring_obj = NULL;
+ sprintf(ring->name, "gfx");
+ r = amdgpu_ring_init(adev, ring, 1024,
+- &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP);
++ &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP);
+ if (r)
+ return r;
+ }
+@@ -3348,7 +3348,7 @@ static int gfx_v6_0_set_eop_interrupt_state(struct amdgpu_device *adev,
+ enum amdgpu_interrupt_state state)
+ {
+ switch (type) {
+- case AMDGPU_CP_IRQ_GFX_EOP:
++ case AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP:
+ gfx_v6_0_set_gfx_eop_interrupt_state(adev, state);
+ break;
+ case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP:
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+index 4cd1731d62fd..bc5ff82565d2 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+@@ -4460,7 +4460,7 @@ static int gfx_v7_0_sw_init(void *handle)
+ ring->ring_obj = NULL;
+ sprintf(ring->name, "gfx");
+ r = amdgpu_ring_init(adev, ring, 1024,
+- &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP);
++ &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP);
+ if (r)
+ return r;
+ }
+@@ -4797,7 +4797,7 @@ static int gfx_v7_0_set_eop_interrupt_state(struct amdgpu_device *adev,
+ enum amdgpu_interrupt_state state)
+ {
+ switch (type) {
+- case AMDGPU_CP_IRQ_GFX_EOP:
++ case AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP:
+ gfx_v7_0_set_gfx_eop_interrupt_state(adev, state);
+ break;
+ case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP:
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+index f56e98bdcf50..792aeb1b9e33 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+@@ -2005,7 +2005,7 @@ static int gfx_v8_0_sw_init(void *handle)
+ }
+
+ r = amdgpu_ring_init(adev, ring, 1024, &adev->gfx.eop_irq,
+- AMDGPU_CP_IRQ_GFX_EOP);
++ AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP);
+ if (r)
+ return r;
+ }
+@@ -6532,7 +6532,7 @@ static int gfx_v8_0_set_eop_interrupt_state(struct amdgpu_device *adev,
+ enum amdgpu_interrupt_state state)
+ {
+ switch (type) {
+- case AMDGPU_CP_IRQ_GFX_EOP:
++ case AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP:
+ gfx_v8_0_set_gfx_eop_interrupt_state(adev, state);
+ break;
+ case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP:
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+index c74b0b66e3f1..ac426b833ec1 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+@@ -1721,7 +1721,7 @@ static int gfx_v9_0_sw_init(void *handle)
+ ring->use_doorbell = true;
+ ring->doorbell_index = adev->doorbell_index.gfx_ring0 << 1;
+ r = amdgpu_ring_init(adev, ring, 1024,
+- &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP);
++ &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP);
+ if (r)
+ return r;
+ }
+@@ -5029,7 +5029,7 @@ static int gfx_v9_0_set_eop_interrupt_state(struct amdgpu_device *adev,
+ enum amdgpu_interrupt_state state)
+ {
+ switch (type) {
+- case AMDGPU_CP_IRQ_GFX_EOP:
++ case AMDGPU_CP_IRQ_GFX_ME0_PIPE0_EOP:
+ gfx_v9_0_set_gfx_eop_interrupt_state(adev, state);
+ break;
+ case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP:
+--
+2.17.1
+