]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: Place gart and vram in sysvm aper for A + A
authorHawking Zhang <Hawking.Zhang@amd.com>
Sat, 17 Jan 2026 08:33:40 +0000 (16:33 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 17 Mar 2026 14:31:58 +0000 (10:31 -0400)
On A + A platform, sysvm aperture is used for both
vram and gart access. In sysvm aperture, vram starts
at 0, and gart starts right after vram.

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 da4a0cf4aad0c397c14d1b3df8c53e8f0cf1cf85..a68a398afebec394c9979971a4c390c8f8bf36a9 100644 (file)
@@ -691,12 +691,15 @@ static void gmc_v12_0_vram_gtt_location(struct amdgpu_device *adev,
 
        base = adev->mmhub.funcs->get_fb_location(adev);
 
-       amdgpu_gmc_set_agp_default(adev, mc);
-       amdgpu_gmc_vram_location(adev, &adev->gmc, base);
-       amdgpu_gmc_gart_location(adev, mc, AMDGPU_GART_PLACEMENT_LOW);
-       if (!amdgpu_sriov_vf(adev) && (amdgpu_agp == 1))
-               amdgpu_gmc_agp_location(adev, mc);
-
+       if (amdgpu_gmc_is_pdb0_enabled(adev)) {
+               amdgpu_gmc_sysvm_location(adev, mc);
+       } else {
+               amdgpu_gmc_set_agp_default(adev, mc);
+               amdgpu_gmc_vram_location(adev, &adev->gmc, base);
+               amdgpu_gmc_gart_location(adev, mc, AMDGPU_GART_PLACEMENT_LOW);
+               if (!amdgpu_sriov_vf(adev) && (amdgpu_agp == 1))
+                       amdgpu_gmc_agp_location(adev, mc);
+       }
        /* base offset of vram pages */
        if (amdgpu_sriov_vf(adev))
                adev->vm_manager.vram_base_offset = 0;