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