Commit 15091a6f authored by Le Ma's avatar Le Ma Committed by Alex Deucher

drm/amdgpu: add node_id to physical id conversion in EOP handler

A new field nodeid in interrupt cookie indicates the node ID.
Signed-off-by: default avatarLe Ma <le.ma@amd.com>
Reviewed-by: default avatarShiwu Zhang <shiwu.zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 147862d0
......@@ -99,6 +99,17 @@ const char *soc15_ih_clientid_name[] = {
"MP1"
};
const int node_id_to_phys_map[NODEID_MAX] = {
[XCD0_NODEID] = 0,
[XCD1_NODEID] = 1,
[XCD2_NODEID] = 2,
[XCD3_NODEID] = 3,
[XCD4_NODEID] = 4,
[XCD5_NODEID] = 5,
[XCD6_NODEID] = 6,
[XCD7_NODEID] = 7,
};
/**
* amdgpu_irq_disable_all - disable *all* interrupts
*
......
......@@ -102,6 +102,20 @@ struct amdgpu_irq {
bool retry_cam_enabled;
};
enum interrupt_node_id_per_xcp {
XCD0_NODEID = 1,
XCD1_NODEID = 2,
XCD2_NODEID = 5,
XCD3_NODEID = 6,
XCD4_NODEID = 9,
XCD5_NODEID = 10,
XCD6_NODEID = 13,
XCD7_NODEID = 14,
NODEID_MAX,
};
extern const int node_id_to_phys_map[NODEID_MAX];
void amdgpu_irq_disable_all(struct amdgpu_device *adev);
int amdgpu_irq_init(struct amdgpu_device *adev);
......
......@@ -2799,7 +2799,7 @@ static int gfx_v9_4_3_eop_irq(struct amdgpu_device *adev,
struct amdgpu_irq_src *source,
struct amdgpu_iv_entry *entry)
{
int i;
int i, phys_id;
u8 me_id, pipe_id, queue_id;
struct amdgpu_ring *ring;
......@@ -2808,12 +2808,14 @@ static int gfx_v9_4_3_eop_irq(struct amdgpu_device *adev,
pipe_id = (entry->ring_id & 0x03) >> 0;
queue_id = (entry->ring_id & 0x70) >> 4;
phys_id = node_id_to_phys_map[entry->node_id];
switch (me_id) {
case 0:
case 1:
case 2:
for (i = 0; i < adev->gfx.num_compute_rings; i++) {
ring = &adev->gfx.compute_ring[i];
ring = &adev->gfx.compute_ring[i + phys_id * adev->gfx.num_compute_rings];
/* Per-queue interrupt is supported for MEC starting from VI.
* The interrupt can only be enabled/disabled per pipe instead of per queue.
*/
......
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