drm/amdgpu: use physical_node_id to calculate aper_base
authorHawking Zhang <Hawking.Zhang@amd.com>
Tue, 17 Nov 2020 07:51:29 +0000 (15:51 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Mar 2021 02:55:20 +0000 (22:55 -0400)
Similar as xgmi connected gpu nodes, physical_node_id
* segment_size should be used to calculate the offset
of aper_base.

The asic type check is redundant. once physical_node_id
and segment_size are initialized, it should be count
on.

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Kevin Wang <kevin1.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c

index 44fc85b..37c8150 100644 (file)
@@ -1263,19 +1263,13 @@ static int gmc_v9_0_mc_init(struct amdgpu_device *adev)
         */
 
        /* check whether both host-gpu and gpu-gpu xgmi links exist */
-       if (adev->gmc.xgmi.supported && adev->gmc.xgmi.connected_to_cpu &&
-           adev->asic_type == CHIP_ALDEBARAN) {
-
-               adev->gmc.aper_base = adev->gfxhub.funcs->get_mc_fb_offset(adev) +
-                       adev->gmc.xgmi.node_id *
+       if ((adev->flags & AMD_IS_APU) ||
+           (adev->gmc.xgmi.supported &&
+            adev->gmc.xgmi.connected_to_cpu)) {
+               adev->gmc.aper_base =
+                       adev->gfxhub.funcs->get_mc_fb_offset(adev) +
+                       adev->gmc.xgmi.physical_node_id *
                        adev->gmc.xgmi.node_segment_size;
-
-               adev->gmc.aper_size = adev->gmc.real_vram_size;
-
-       }
-
-       if (adev->flags & AMD_IS_APU) {
-               adev->gmc.aper_base = adev->gfxhub.funcs->get_mc_fb_offset(adev);
                adev->gmc.aper_size = adev->gmc.real_vram_size;
        }