drm/amdgpu: fix regression in vbios reservation handling on headless
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 14 Dec 2020 16:00:47 +0000 (11:00 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Dec 2020 10:53:54 +0000 (11:53 +0100)
[ Upstream commit 7eded018bfeccb365963bb51be731a9f99aeea59 ]

We need to move the check under the non-headless case, otherwise
we always reserve the VGA save size.

Fixes: 157fe68d74c2ad ("drm/amdgpu: fix size calculation with stolen vga memory")
Reviewed-by: Guchun Chen <guchun.chen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c

index 3e4892b..ff4e226 100644 (file)
@@ -494,13 +494,14 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
                break;
        }
 
-       if (!amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_DCE))
+       if (!amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_DCE)) {
                size = 0;
-       else
+       } else {
                size = amdgpu_gmc_get_vbios_fb_size(adev);
 
-       if (adev->mman.keep_stolen_vga_memory)
-               size = max(size, (unsigned)AMDGPU_VBIOS_VGA_ALLOCATION);
+               if (adev->mman.keep_stolen_vga_memory)
+                       size = max(size, (unsigned)AMDGPU_VBIOS_VGA_ALLOCATION);
+       }
 
        /* set to 0 if the pre-OS buffer uses up most of vram */
        if ((adev->gmc.real_vram_size - size) < (8 * 1024 * 1024))