]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amd/pm/si: Disregard vblank time when no displays are connected
authorTimur Kristóf <timur.kristof@gmail.com>
Tue, 19 May 2026 08:41:54 +0000 (10:41 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 27 May 2026 16:00:03 +0000 (12:00 -0400)
When no displays are connected, there is no vblank
happening so the power management code shouldn't
worry about it.

This fixes a regression that caused the memory clock
to be stuck at maximum when there were no displays
connected to a SI GPU.

Fixes: 9003a0746864 ("drm/amd/pm: Treat zero vblank time as too short in si_dpm (v3)")
Fixes: 9d73b107a61b ("drm/amd/pm: Use pm_display_cfg in legacy DPM (v2)")
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Jeremy Klarenbeek <jeremy.klarenbeek99@gmail.com>
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 6d87e0199f7b83735b56e422d59f170a201897a8)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c

index 36942467d4addafc77050e4a632a86dea088f381..c3aff5d0c53dc0ceebb1bb78f9ca617bd44d2c5a 100644 (file)
@@ -3076,6 +3076,10 @@ static bool si_dpm_vblank_too_short(void *handle)
        /* we never hit the non-gddr5 limit so disable it */
        u32 switch_limit = adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5 ? 450 : 0;
 
+       /* Disregard vblank time when there are no displays connected */
+       if (!adev->pm.pm_display_cfg.num_display)
+               return false;
+
        /* Consider zero vblank time too short and disable MCLK switching.
         * Note that the vblank time is set to maximum when no displays are attached,
         * so we'll still enable MCLK switching in that case.