<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div id="appendonsend" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I don't recommend that, because obviously this is a <b>hardware</b> <b>operation</b>, so why need to move it  into
<b>sw</b> <b>init</b>?<br>
<div>Is this a workaround solution, or is it specific to which asic?<br>
</div>
</div>
<div id="appendonsend" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">and set pptable from sysfs and do baco reset operation need to call these functions, have you test it?</span><br>
</div>
<div id="appendonsend" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
the function in amdgpu_smu.c and smu_v11_0.c need work correctly in all asic,</div>
<div id="appendonsend" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span>it needs to be done carefully, unless there is a good reason.<br>
</span>
<div><br>
</div>
</div>
<div id="appendonsend" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span>Best Regards,<br>
Kevin</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Evan Quan <evan.quan@amd.com><br>
<b>Sent:</b> Thursday, July 25, 2019 10:39 AM<br>
<b>To:</b> amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org><br>
<b>Cc:</b> Quan, Evan <Evan.Quan@amd.com><br>
<b>Subject:</b> [PATCH 2/2] drm/amd/powerplay: enable SW SMU reset functionality</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">Move SMU irq handler register to sw_init as that's totally<br>
software related. Otherwise, it will prevent SMU reset working.<br>
<br>
Change-Id: Ibd3e48ae9a90ab57f42b3f2ddbb736deeebc8715<br>
Signed-off-by: Evan Quan <evan.quan@amd.com><br>
---<br>
 drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 16 +++++++++-------<br>
 1 file changed, 9 insertions(+), 7 deletions(-)<br>
<br>
diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c<br>
index 6935a00cd389..a5079b93caa3 100644<br>
--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c<br>
+++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c<br>
@@ -741,6 +741,12 @@ static int smu_sw_init(void *handle)<br>
                 return ret;<br>
         }<br>
 <br>
+       ret = smu_register_irq_handler(smu);<br>
+       if (ret) {<br>
+               pr_err("Failed to register smc irq handler!\n");<br>
+               return ret;<br>
+       }<br>
+<br>
         return 0;<br>
 }<br>
 <br>
@@ -750,6 +756,9 @@ static int smu_sw_fini(void *handle)<br>
         struct smu_context *smu = &adev->smu;<br>
         int ret;<br>
 <br>
+       kfree(smu->irq_source);<br>
+       smu->irq_source = NULL;<br>
+<br>
         ret = smu_smc_table_sw_fini(smu);<br>
         if (ret) {<br>
                 pr_err("Failed to sw fini smc table!\n");<br>
@@ -1061,10 +1070,6 @@ static int smu_hw_init(void *handle)<br>
         if (ret)<br>
                 goto failed;<br>
 <br>
-       ret = smu_register_irq_handler(smu);<br>
-       if (ret)<br>
-               goto failed;<br>
-<br>
         if (!smu->pm_enabled)<br>
                 adev->pm.dpm_enabled = false;<br>
         else<br>
@@ -1094,9 +1099,6 @@ static int smu_hw_fini(void *handle)<br>
         kfree(table_context->overdrive_table);<br>
         table_context->overdrive_table = NULL;<br>
 <br>
-       kfree(smu->irq_source);<br>
-       smu->irq_source = NULL;<br>
-<br>
         ret = smu_fini_fb_allocations(smu);<br>
         if (ret)<br>
                 return ret;<br>
-- <br>
2.22.0<br>
<br>
_______________________________________________<br>
amd-gfx mailing list<br>
amd-gfx@lists.freedesktop.org<br>
<a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a></div>
</span></font></div>
</body>
</html>