<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
p.msipheader23c54b6f, li.msipheader23c54b6f, div.msipheader23c54b6f
        {mso-style-name:msipheader23c54b6f;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="msipheader23c54b6f" style="margin:0in"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:green">[Public]</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Lothian,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks for your report. I have a following fix for this problem, will send it out soon for review.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Guchun<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> amd-gfx <amd-gfx-bounces@lists.freedesktop.org>
<b>On Behalf Of </b>Mike Lothian<br>
<b>Sent:</b> Sunday, August 1, 2021 7:57 PM<br>
<b>To:</b> Gao, Likun <Likun.Gao@amd.com><br>
<b>Cc:</b> amd-gfx list <amd-gfx@lists.freedesktop.org>; Zhang, Hawking <Hawking.Zhang@amd.com><br>
<b>Subject:</b> Re: [PATCH] drm/amdgpu: adjust fence driver enable sequence<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">This patch is causing me issues on my Skylake/Tonga PRIME laptop, reverting sorts it<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">More details here: <a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Famd%2F-%2Fissues%2F1668&data=04%7C01%7Cguchun.chen%40amd.com%7C858e6bd7d2da4e442f0308d954e380e8%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637634159140610948%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=aDq%2F%2Fiyqn32JZXJ%2Fet9HGZWIen%2FeRhBBd%2FXJ4Wgv5Ds%3D&reserved=0">
https://gitlab.freedesktop.org/drm/amd/-/issues/1668</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Cheers<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Mike<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, 28 Jul 2021 at 05:07, Likun Gao <<a href="mailto:likun.gao@amd.com">likun.gao@amd.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<p class="MsoNormal">From: Likun Gao <<a href="mailto:Likun.Gao@amd.com" target="_blank">Likun.Gao@amd.com</a>><br>
<br>
Fence driver was enabled per ring when sw init on per IP block before.<br>
Change to enable all the fence driver at the same time after<br>
amdgpu_device_ip_init finished.<br>
Rename some function related to fence to make it reasonable for read.<br>
<br>
Signed-off-by: Likun Gao <<a href="mailto:Likun.Gao@amd.com" target="_blank">Likun.Gao@amd.com</a>><br>
---<br>
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  6 ++++--<br>
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c  | 15 ++++++---------<br>
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h   |  4 ++--<br>
 3 files changed, 12 insertions(+), 13 deletions(-)<br>
<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
index d3a4299b1f30..77195a4e5c59 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
@@ -3675,6 +3675,8 @@ int amdgpu_device_init(struct amdgpu_device *adev,<br>
                goto release_ras_con;<br>
        }<br>
<br>
+       amdgpu_fence_driver_hw_init(adev);<br>
+<br>
        dev_info(adev->dev,<br>
                "SE %d, SH per SE %d, CU per SH %d, active_cu_number %d\n",<br>
                        adev->gfx.config.max_shader_engines,<br>
@@ -3939,7 +3941,7 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)<br>
        /* evict vram memory */<br>
        amdgpu_bo_evict_vram(adev);<br>
<br>
-       amdgpu_fence_driver_suspend(adev);<br>
+       amdgpu_fence_driver_hw_fini(adev);<br>
<br>
        amdgpu_device_ip_suspend_phase2(adev);<br>
        /* evict remaining vram memory<br>
@@ -3984,7 +3986,7 @@ int amdgpu_device_resume(struct drm_device *dev, bool fbcon)<br>
                dev_err(adev->dev, "amdgpu_device_ip_resume failed (%d).\n", r);<br>
                return r;<br>
        }<br>
-       amdgpu_fence_driver_resume(adev);<br>
+       amdgpu_fence_driver_hw_init(adev);<br>
<br>
<br>
        r = amdgpu_device_ip_late_init(adev);<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c<br>
index 72d9b92b1754..e2f606bca779 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c<br>
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c<br>
@@ -417,9 +417,6 @@ int amdgpu_fence_driver_start_ring(struct amdgpu_ring *ring,<br>
        }<br>
        amdgpu_fence_write(ring, atomic_read(&ring->fence_drv.last_seq));<br>
<br>
-       if (irq_src)<br>
-               amdgpu_irq_get(adev, irq_src, irq_type);<br>
-<br>
        ring->fence_drv.irq_src = irq_src;<br>
        ring->fence_drv.irq_type = irq_type;<br>
        ring->fence_drv.initialized = true;<br>
@@ -572,14 +569,14 @@ void amdgpu_fence_driver_fini_sw(struct amdgpu_device *adev)<br>
 }<br>
<br>
 /**<br>
- * amdgpu_fence_driver_suspend - suspend the fence driver<br>
+ * amdgpu_fence_driver_hw_fini - disable the fence driver<br>
  * for all possible rings.<br>
  *<br>
  * @adev: amdgpu device pointer<br>
  *<br>
- * Suspend the fence driver for all possible rings (all asics).<br>
+ * Disable the fence driver for all possible rings (all asics).<br>
  */<br>
-void amdgpu_fence_driver_suspend(struct amdgpu_device *adev)<br>
+void amdgpu_fence_driver_hw_fini(struct amdgpu_device *adev)<br>
 {<br>
        int i, r;<br>
<br>
@@ -603,18 +600,18 @@ void amdgpu_fence_driver_suspend(struct amdgpu_device *adev)<br>
 }<br>
<br>
 /**<br>
- * amdgpu_fence_driver_resume - resume the fence driver<br>
+ * amdgpu_fence_driver_hw_init - enable the fence driver<br>
  * for all possible rings.<br>
  *<br>
  * @adev: amdgpu device pointer<br>
  *<br>
- * Resume the fence driver for all possible rings (all asics).<br>
+ * Enable the fence driver for all possible rings (all asics).<br>
  * Not all asics have all rings, so each asic will only<br>
  * start the fence driver on the rings it has using<br>
  * amdgpu_fence_driver_start_ring().<br>
  * Returns 0 for success.<br>
  */<br>
-void amdgpu_fence_driver_resume(struct amdgpu_device *adev)<br>
+void amdgpu_fence_driver_hw_init(struct amdgpu_device *adev)<br>
 {<br>
        int i;<br>
<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h<br>
index e7d3d0dbdd96..64471018f5e6 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h<br>
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h<br>
@@ -117,8 +117,8 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,<br>
 int amdgpu_fence_driver_start_ring(struct amdgpu_ring *ring,<br>
                                   struct amdgpu_irq_src *irq_src,<br>
                                   unsigned irq_type);<br>
-void amdgpu_fence_driver_suspend(struct amdgpu_device *adev);<br>
-void amdgpu_fence_driver_resume(struct amdgpu_device *adev);<br>
+void amdgpu_fence_driver_hw_fini(struct amdgpu_device *adev);<br>
+void amdgpu_fence_driver_hw_init(struct amdgpu_device *adev);<br>
 int amdgpu_fence_emit(struct amdgpu_ring *ring, struct dma_fence **fence,<br>
                      unsigned flags);<br>
 int amdgpu_fence_emit_polling(struct amdgpu_ring *ring, uint32_t *s,<br>
-- <br>
2.25.1<br>
<br>
_______________________________________________<br>
amd-gfx mailing list<br>
<a href="mailto:amd-gfx@lists.freedesktop.org" target="_blank">amd-gfx@lists.freedesktop.org</a><br>
<a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=04%7C01%7Cguchun.chen%40amd.com%7C858e6bd7d2da4e442f0308d954e380e8%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637634159140620942%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=246tWunS5hNC8N1rP1oFMFABerqup5j%2Ff1hMGuouLnk%3D&reserved=0" target="_blank">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>