<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">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Acked-by: Alex Deucher <alexander.deucher@amd.com><br>
</p>
</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> amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Tiecheng Zhou <Tiecheng.Zhou@amd.com><br>
<b>Sent:</b> Thursday, December 6, 2018 9:11:49 PM<br>
<b>To:</b> amd-gfx@lists.freedesktop.org<br>
<b>Cc:</b> Zhou, Tiecheng<br>
<b>Subject:</b> [PATCH] drm/amdgpu: bypass RLC init under sriov for Tonga</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">SWDEV-173384: vm-mix reboot (4 VMs) fail on Tonga under sriov<br>
<br>
Phenomena: there is compute_1.3.1 ring test fail on one VM<br>
           when it starts to do hw_init after it is rebooted<br>
<br>
Root cause: RLC will go wrong in soft_reset under sriov<br>
<br>
Workaround: init RLC csb, and skip RLC stop, reset, start<br>
            this is because GIM has already done<br>
            full initialization on RLC<br>
<br>
refer to 'commit cfee05bc9057 ("drm/amdgpu:bypass RLC init for SRIOV")'<br>
     and 'commit f840cc5f8447 ("drm/amdgpu/sriov:init csb for gfxv9")'<br>
<br>
Signed-off-by: Tiecehng Zhou <Tiecheng.Zhou@amd.com><br>
---<br>
 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 5 +++++<br>
 1 file changed, 5 insertions(+)<br>
<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<br>
index 1454fc3..a9c853a 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<br>
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<br>
@@ -4068,6 +4068,11 @@ static void gfx_v8_0_rlc_start(struct amdgpu_device *adev)<br>
 <br>
 static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev)<br>
 {<br>
+       if (amdgpu_sriov(adev)) {<br>
+               gfx_v8_0_init_csb(adev);<br>
+               return 0;<br>
+       }<br>
+<br>
         adev->gfx.rlc.funcs->stop(adev);<br>
         adev->gfx.rlc.funcs->reset(adev);<br>
         gfx_v8_0_init_pg(adev);<br>
-- <br>
2.7.4<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><br>
</div>
</span></font></div>
</body>
</html>