Commit 53b2fe41 authored by Hawking Zhang's avatar Hawking Zhang Committed by Alex Deucher

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: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 19191961
...@@ -213,7 +213,8 @@ struct amdgpu_atif; ...@@ -213,7 +213,8 @@ struct amdgpu_atif;
struct kfd_vm_fault_info; struct kfd_vm_fault_info;
enum amdgpu_cp_irq { 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_PIPE0_EOP,
AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE1_EOP, AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE1_EOP,
AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE2_EOP, AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE2_EOP,
......
...@@ -3113,7 +3113,7 @@ static int gfx_v6_0_sw_init(void *handle) ...@@ -3113,7 +3113,7 @@ static int gfx_v6_0_sw_init(void *handle)
ring->ring_obj = NULL; ring->ring_obj = NULL;
sprintf(ring->name, "gfx"); sprintf(ring->name, "gfx");
r = amdgpu_ring_init(adev, ring, 1024, 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) if (r)
return r; return r;
} }
...@@ -3348,7 +3348,7 @@ static int gfx_v6_0_set_eop_interrupt_state(struct amdgpu_device *adev, ...@@ -3348,7 +3348,7 @@ static int gfx_v6_0_set_eop_interrupt_state(struct amdgpu_device *adev,
enum amdgpu_interrupt_state state) enum amdgpu_interrupt_state state)
{ {
switch (type) { 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); gfx_v6_0_set_gfx_eop_interrupt_state(adev, state);
break; break;
case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP: case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP:
......
...@@ -4460,7 +4460,7 @@ static int gfx_v7_0_sw_init(void *handle) ...@@ -4460,7 +4460,7 @@ static int gfx_v7_0_sw_init(void *handle)
ring->ring_obj = NULL; ring->ring_obj = NULL;
sprintf(ring->name, "gfx"); sprintf(ring->name, "gfx");
r = amdgpu_ring_init(adev, ring, 1024, 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) if (r)
return r; return r;
} }
...@@ -4797,7 +4797,7 @@ static int gfx_v7_0_set_eop_interrupt_state(struct amdgpu_device *adev, ...@@ -4797,7 +4797,7 @@ static int gfx_v7_0_set_eop_interrupt_state(struct amdgpu_device *adev,
enum amdgpu_interrupt_state state) enum amdgpu_interrupt_state state)
{ {
switch (type) { 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); gfx_v7_0_set_gfx_eop_interrupt_state(adev, state);
break; break;
case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP: case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP:
......
...@@ -2005,7 +2005,7 @@ static int gfx_v8_0_sw_init(void *handle) ...@@ -2005,7 +2005,7 @@ static int gfx_v8_0_sw_init(void *handle)
} }
r = amdgpu_ring_init(adev, ring, 1024, &adev->gfx.eop_irq, 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) if (r)
return r; return r;
} }
...@@ -6533,7 +6533,7 @@ static int gfx_v8_0_set_eop_interrupt_state(struct amdgpu_device *adev, ...@@ -6533,7 +6533,7 @@ static int gfx_v8_0_set_eop_interrupt_state(struct amdgpu_device *adev,
enum amdgpu_interrupt_state state) enum amdgpu_interrupt_state state)
{ {
switch (type) { 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); gfx_v8_0_set_gfx_eop_interrupt_state(adev, state);
break; break;
case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP: case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP:
......
...@@ -1721,7 +1721,7 @@ static int gfx_v9_0_sw_init(void *handle) ...@@ -1721,7 +1721,7 @@ static int gfx_v9_0_sw_init(void *handle)
ring->use_doorbell = true; ring->use_doorbell = true;
ring->doorbell_index = adev->doorbell_index.gfx_ring0 << 1; ring->doorbell_index = adev->doorbell_index.gfx_ring0 << 1;
r = amdgpu_ring_init(adev, ring, 1024, 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) if (r)
return r; return r;
} }
...@@ -5025,7 +5025,7 @@ static int gfx_v9_0_set_eop_interrupt_state(struct amdgpu_device *adev, ...@@ -5025,7 +5025,7 @@ static int gfx_v9_0_set_eop_interrupt_state(struct amdgpu_device *adev,
enum amdgpu_interrupt_state state) enum amdgpu_interrupt_state state)
{ {
switch (type) { 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); gfx_v9_0_set_gfx_eop_interrupt_state(adev, state);
break; break;
case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP: case AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment