From: Hawking Zhang <[email protected]>

Calculate vram_size using the XGMI node segment size
and node count for A+A configurations

Signed-off-by: Hawking Zhang <[email protected]>
Reviewed-by: Likun Gao <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c 
b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
index 2b5f01f15fac3..ac39011d1268c 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
@@ -728,9 +728,13 @@ static int gmc_v12_0_mc_init(struct amdgpu_device *adev)
 {
        int r;
 
-       /* size in MB on si */
-       adev->gmc.mc_vram_size =
-               adev->nbio.funcs->get_memsize(adev) * 1024ULL * 1024ULL;
+       if (adev->gmc.xgmi.connected_to_cpu)
+               adev->gmc.mc_vram_size =
+                       adev->gmc.xgmi.node_segment_size * 
adev->gmc.xgmi.num_physical_nodes;
+       else
+               adev->gmc.mc_vram_size =
+                       adev->nbio.funcs->get_memsize(adev) * 1024ULL * 1024ULL;
+
        adev->gmc.real_vram_size = adev->gmc.mc_vram_size;
 
        if (!(adev->flags & AMD_IS_APU) &&
-- 
2.53.0

Reply via email to