]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: keep vga memory on MacBooks with switchable graphics
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 16 Feb 2026 15:02:32 +0000 (10:02 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 19 Feb 2026 17:16:11 +0000 (12:16 -0500)
On Intel MacBookPros with switchable graphics, when the iGPU
is enabled, the address of VRAM gets put at 0 in the dGPU's
virtual address space.  This is non-standard and seems to cause
issues with the cursor if it ends up at 0.  We have the framework
to reserve memory at 0 in the address space, so enable it here if
the vram start address is 0.

Reviewed-and-tested-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4302
Cc: stable@vger.kernel.org
Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c

index d35d9719d566835bf38f2c9bf9eaa5d3c1e5da97..6a6b334428f6dc94a9300f56376f033e9b1c5795 100644 (file)
@@ -1068,6 +1068,16 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
        case CHIP_RENOIR:
                adev->mman.keep_stolen_vga_memory = true;
                break;
+       case CHIP_POLARIS10:
+       case CHIP_POLARIS11:
+       case CHIP_POLARIS12:
+               /* MacBookPros with switchable graphics put VRAM at 0 when
+                * the iGPU is enabled which results in cursor issues if
+                * the cursor ends up at 0.  Reserve vram at 0 in that case.
+                */
+               if (adev->gmc.vram_start == 0)
+                       adev->mman.keep_stolen_vga_memory = true;
+               break;
        default:
                adev->mman.keep_stolen_vga_memory = false;
                break;