<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Arial;font-size:11pt;color:#0078D7;margin:5pt;" align="Left">
[AMD Official Use Only - Internal Distribution Only]<br>
</p>
<br>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Reviewed-by: Alex Deucher <alexander.deucher@amd.com><br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Zhou1, Tao <Tao.Zhou1@amd.com><br>
<b>Sent:</b> Wednesday, January 6, 2021 1:13 AM<br>
<b>To:</b> Deucher, Alexander <Alexander.Deucher@amd.com>; Kuehling, Felix <Felix.Kuehling@amd.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org><br>
<b>Cc:</b> Zhou1, Tao <Tao.Zhou1@amd.com><br>
<b>Subject:</b> [PATCH] drm/amdkfd: check more client ids in interrupt handler</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Add check for SExSH clients in kfd interrupt handler.<br>
<br>
Signed-off-by: Tao Zhou <tao.zhou1@amd.com><br>
---<br>
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 12 ++++++++++--<br>
1 file changed, 10 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c<br>
index 0ca0327a39e5..74a460be077b 100644<br>
--- a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c<br>
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c<br>
@@ -56,7 +56,11 @@ static bool event_interrupt_isr_v9(struct kfd_dev *dev,<br>
client_id != SOC15_IH_CLIENTID_SDMA7 &&<br>
client_id != SOC15_IH_CLIENTID_VMC &&<br>
client_id != SOC15_IH_CLIENTID_VMC1 &&<br>
- client_id != SOC15_IH_CLIENTID_UTCL2)<br>
+ client_id != SOC15_IH_CLIENTID_UTCL2 &&<br>
+ client_id != SOC15_IH_CLIENTID_SE0SH &&<br>
+ client_id != SOC15_IH_CLIENTID_SE1SH &&<br>
+ client_id != SOC15_IH_CLIENTID_SE2SH &&<br>
+ client_id != SOC15_IH_CLIENTID_SE3SH)<br>
return false;<br>
<br>
/* This is a known issue for gfx9. Under non HWS, pasid is not set<br>
@@ -111,7 +115,11 @@ static void event_interrupt_wq_v9(struct kfd_dev *dev,<br>
vmid = SOC15_VMID_FROM_IH_ENTRY(ih_ring_entry);<br>
context_id = SOC15_CONTEXT_ID0_FROM_IH_ENTRY(ih_ring_entry);<br>
<br>
- if (client_id == SOC15_IH_CLIENTID_GRBM_CP) {<br>
+ if (client_id == SOC15_IH_CLIENTID_GRBM_CP ||<br>
+ client_id == SOC15_IH_CLIENTID_SE0SH ||<br>
+ client_id == SOC15_IH_CLIENTID_SE1SH ||<br>
+ client_id == SOC15_IH_CLIENTID_SE2SH ||<br>
+ client_id == SOC15_IH_CLIENTID_SE3SH) {<br>
if (source_id == SOC15_INTSRC_CP_END_OF_PIPE)<br>
kfd_signal_event_interrupt(pasid, context_id, 32);<br>
else if (source_id == SOC15_INTSRC_SQ_INTERRUPT_MSG)<br>
-- <br>
2.17.1<br>
<br>
</div>
</span></font></div>
</div>
</body>
</html>