<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">Reviewed-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 Shaoyun Liu <Shaoyun.Liu@amd.com><br>
<b>Sent:</b> Tuesday, February 6, 2018 6:25:57 PM<br>
<b>To:</b> amd-gfx@lists.freedesktop.org<br>
<b>Cc:</b> Liu, Shaoyun<br>
<b>Subject:</b> [PATCH] drm/amdgpu: Add place holder for soc15 asic init on emulation</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Add common smu_soc_asic_init function to emulate the sillicon post sequence<br>
<br>
Change-Id: I6ff04e1199d1ebdbdb31d0e7e8ca3c240c61ab3a<br>
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com><br>
---<br>
 drivers/gpu/drm/amd/amdgpu/Makefile        |  2 +-<br>
 drivers/gpu/drm/amd/amdgpu/amdgpu.h        |  2 ++<br>
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 18 ++++------------<br>
 drivers/gpu/drm/amd/amdgpu/emu_soc.c       | 33 ++++++++++++++++++++++++++++++<br>
 4 files changed, 40 insertions(+), 15 deletions(-)<br>
 create mode 100644 drivers/gpu/drm/amd/amdgpu/emu_soc.c<br>
<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile<br>
index 1f6d43e..6f5db5e 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/Makefile<br>
+++ b/drivers/gpu/drm/amd/amdgpu/Makefile<br>
@@ -41,7 +41,7 @@ amdgpu-$(CONFIG_DRM_AMDGPU_CIK)+= cik.o cik_ih.o kv_smc.o kv_dpm.o \<br>
 amdgpu-$(CONFIG_DRM_AMDGPU_SI)+= si.o gmc_v6_0.o gfx_v6_0.o si_ih.o si_dma.o dce_v6_0.o si_dpm.o si_smc.o<br>
 <br>
 amdgpu-y += \<br>
-       vi.o mxgpu_vi.o nbio_v6_1.o soc15.o mxgpu_ai.o nbio_v7_0.o vega10_reg_init.o vega20_reg_init.o nbio_v7_4.o<br>
+       vi.o mxgpu_vi.o nbio_v6_1.o soc15.o emu_soc.o mxgpu_ai.o nbio_v7_0.o vega10_reg_init.o vega20_reg_init.o nbio_v7_4.o<br>
 <br>
 # add GMC block<br>
 amdgpu-y += \<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h<br>
index d417cfb..13aa8a8 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h<br>
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h<br>
@@ -1740,6 +1740,8 @@ void amdgpu_mm_wreg(struct amdgpu_device *adev, uint32_t reg, uint32_t v,<br>
 bool amdgpu_device_asic_has_dc_support(enum amd_asic_type asic_type);<br>
 bool amdgpu_device_has_dc_support(struct amdgpu_device *adev);<br>
 <br>
+int emu_soc_asic_init(struct amdgpu_device *adev);<br>
+<br>
 /*<br>
  * Registers read & write functions.<br>
  */<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
index 4056e26..f6ec36f 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
@@ -1345,19 +1345,6 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)<br>
                 }<br>
                 adev->ip_blocks[i].status.sw = true;<br>
 <br>
-               if (amdgpu_emu_mode == 1) {<br>
-                       /* Need to do common hw init first on emulation  */<br>
-                       if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) {<br>
-                               r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev);<br>
-                               if (r) {<br>
-                                       DRM_ERROR("hw_init of IP block <%s> failed %d\n",<br>
-                                               adev->ip_blocks[i].version->funcs->name, r);<br>
-                                       return r;<br>
-                               }<br>
-                               adev->ip_blocks[i].status.hw = true;<br>
-                       }<br>
-               }<br>
-<br>
                 /* need to do gmc hw init early so we can allocate gpu mem */<br>
                 if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {<br>
                         r = amdgpu_device_vram_scratch_init(adev);<br>
@@ -1943,8 +1930,11 @@ int amdgpu_device_init(struct amdgpu_device *adev,<br>
         if (runtime)<br>
                 vga_switcheroo_init_domain_pm_ops(adev->dev, &adev->vga_pm_domain);<br>
 <br>
-       if (amdgpu_emu_mode == 1)<br>
+       if (amdgpu_emu_mode == 1) {<br>
+               /* post the asic on emulation mode */<br>
+               emu_soc_asic_init(adev);<br>
                 goto fence_driver_init;<br>
+       }<br>
 <br>
         /* Read BIOS */<br>
         if (!amdgpu_get_bios(adev)) {<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/emu_soc.c b/drivers/gpu/drm/amd/amdgpu/emu_soc.c<br>
new file mode 100644<br>
index 0000000..d72c25c<br>
--- /dev/null<br>
+++ b/drivers/gpu/drm/amd/amdgpu/emu_soc.c<br>
@@ -0,0 +1,33 @@<br>
+/*<br>
+ * Copyright 2018 Advanced Micro Devices, Inc.<br>
+ *<br>
+ * Permission is hereby granted, free of charge, to any person obtaining a<br>
+ * copy of this software and associated documentation files (the "Software"),<br>
+ * to deal in the Software without restriction, including without limitation<br>
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,<br>
+ * and/or sell copies of the Software, and to permit persons to whom the<br>
+ * Software is furnished to do so, subject to the following conditions:<br>
+ *<br>
+ * The above copyright notice and this permission notice shall be included in<br>
+ * all copies or substantial portions of the Software.<br>
+ *<br>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br>
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br>
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL<br>
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR<br>
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,<br>
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR<br>
+ * OTHER DEALINGS IN THE SOFTWARE.<br>
+ *<br>
+ */<br>
+#include "amdgpu.h"<br>
+#include "soc15.h"<br>
+<br>
+#include "soc15_common.h"<br>
+#include "soc15_hw_ip.h"<br>
+<br>
+int emu_soc_asic_init(struct amdgpu_device *adev)<br>
+{<br>
+       return 0;<br>
+}<br>
+<br>
-- <br>
1.9.1<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>