Cover both XGMI hive offset and A+A platform MC FB offset in one calculation.

Signed-off-by: Stanley.Yang <[email protected]>
Reviewed-by: Tao Zhou <[email protected]>

---
 .../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_cmd.c    | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_cmd.c 
b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_cmd.c
index c28ecdb78e4f..b5fb667df5e9 100644
--- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_cmd.c
+++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_cmd.c
@@ -76,15 +76,6 @@ static int amdgpu_ras_trigger_error_end(struct 
ras_core_context *ras_core,
        return 0;
 }
 
-static uint64_t local_addr_to_xgmi_global_addr(struct ras_core_context 
*ras_core,
-                                          uint64_t addr)
-{
-       struct amdgpu_device *adev = (struct amdgpu_device *)ras_core->dev;
-       struct amdgpu_xgmi *xgmi = &adev->gmc.xgmi;
-
-       return (addr + xgmi->physical_node_id * xgmi->node_segment_size);
-}
-
 /*
  * UMC error injection is dispatched by the RAS TA using the injection method
  * carried in struct ras_cmd_inject_error_req. Only the "coherent" methods
@@ -157,9 +148,11 @@ static int amdgpu_ras_inject_error(struct ras_core_context 
*ras_core,
                                return RAS_CMD__ERROR_INVALID_INPUT_DATA;
                        }
 
-                       /* Calculate XGMI relative offset */
-                       if (adev->gmc.xgmi.num_physical_nodes > 1)
-                               req->address = 
local_addr_to_xgmi_global_addr(ras_core, req->address);
+                       /*
+                        * Calculate XGMI relative offset if in XGMI hive,
+                        * adapt to A+A platform with mc fb offset calculated.
+                        */
+                       req->address += adev->vm_manager.vram_base_offset;
                }
        }
 
-- 
2.43.0

Reply via email to