]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu/gmc12: Update gmc aperture base for A + A
authorHawking Zhang <Hawking.Zhang@amd.com>
Sat, 17 Jan 2026 11:47:09 +0000 (19:47 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 17 Mar 2026 14:32:30 +0000 (10:32 -0400)
Query mmhub MC_VM_FB_OFFSET, XGMI_LFB_CNTL|SIZE
registers to calculate gmc apeture base address
for A + A configuration

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Le Ma <le.ma@amd.com>
Reviewed-by: Feifei Xu <Feifei.Xu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c

index 2bbd63ffe7105e0881953b188d1886c74bf96f76..ac0536be0f90c8ef5d7e6641387e63cfa0042a97 100644 (file)
@@ -736,8 +736,12 @@ static int gmc_v12_0_mc_init(struct amdgpu_device *adev)
        adev->gmc.aper_size = pci_resource_len(adev->pdev, 0);
 
 #ifdef CONFIG_X86_64
-       if ((adev->flags & AMD_IS_APU) && !amdgpu_passthrough(adev)) {
-               adev->gmc.aper_base = adev->mmhub.funcs->get_mc_fb_offset(adev);
+       if (((adev->flags & AMD_IS_APU) && !amdgpu_passthrough(adev)) ||
+           (adev->gmc.xgmi.connected_to_cpu)) {
+               adev->gmc.aper_base =
+                       adev->mmhub.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;
        }
 #endif