From: Oak Zeng <oak.z...@amd.com>

This is only needed on emulation platform where psp fw might
not be available, to hack xgmi topology info such as hive id and
node id.

v2: Add offset to hacked hive/node id
v3: Don't use introduce new module parameter.

Signed-off-by: Oak Zeng <oak.z...@amd.com>
Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 27 ++++++++++++++----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
index d11eba09eadd..b024070ad1cf 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
@@ -301,18 +301,23 @@ int amdgpu_xgmi_add_device(struct amdgpu_device *adev)
        if (!adev->gmc.xgmi.supported)
                return 0;
 
-       ret = psp_xgmi_get_node_id(&adev->psp, &adev->gmc.xgmi.node_id);
-       if (ret) {
-               dev_err(adev->dev,
-                       "XGMI: Failed to get node id\n");
-               return ret;
-       }
+       if (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_PSP)) {
+               ret = psp_xgmi_get_hive_id(&adev->psp, &adev->gmc.xgmi.hive_id);
+               if (ret) {
+                       dev_err(adev->dev,
+                               "XGMI: Failed to get hive id\n");
+                       return ret;
+               }
 
-       ret = psp_xgmi_get_hive_id(&adev->psp, &adev->gmc.xgmi.hive_id);
-       if (ret) {
-               dev_err(adev->dev,
-                       "XGMI: Failed to get hive id\n");
-               return ret;
+               ret = psp_xgmi_get_node_id(&adev->psp, &adev->gmc.xgmi.node_id);
+               if (ret) {
+                       dev_err(adev->dev,
+                               "XGMI: Failed to get node id\n");
+                       return ret;
+               }
+       } else {
+               adev->gmc.xgmi.hive_id = 16;
+               adev->gmc.xgmi.node_id = adev->gmc.xgmi.physical_node_id + 16;
        }
 
        hive = amdgpu_get_xgmi_hive(adev, 1);
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to