[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by: Yang Wang <[email protected]>

Best Regards,
Kevin

-----Original Message-----
From: Alex Deucher <[email protected]>
Sent: Thursday, January 22, 2026 7:25 AM
To: [email protected]
Cc: Deucher, Alexander <[email protected]>; Wang, Yang(Kevin) 
<[email protected]>; Feng, Kenneth <[email protected]>; Li, Roman 
<[email protected]>
Subject: [PATCH] Revert "drm/amd/display: pause the workload setting in dm"

This reverts commit bc6d54ac7e7436721a19443265f971f890c13cc5.

The workload profile needs to be in the default state when the dc idle 
optimizaion state is entered.  However, when jobs come in for video or GFX or 
compute, the profile may be set to a non-default profile resulting in the dc 
idle optimizations not taking affect and resulting in higher power usage.  As 
such we need to pause the workload profile changes during this transition.  
When this patch was originally committed, it caused a regression with a Dell 
U3224KB display, but no other problems were reported at the time.  When it was 
reapplied (this patch) to address increased power usage, it seems to have 
caused additional regressions.  This change seems to have a number of side 
affects (audio issues, stuttering, etc.).  I suspect the pause should only 
happen when all displays are off or in static screen mode, but I think this 
call site gets called more often than that which results in idle state entry 
more often than intended.  For now revert.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4894
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4717
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4725
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4517
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4806
Cc: Yang Wang <[email protected]>
Cc: Kenneth Feng <[email protected]>
Cc: Roman Li <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c    | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
index 38f9ea313dcbb..2e7ee77c010e1 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
@@ -248,8 +248,6 @@ static void amdgpu_dm_crtc_vblank_control_worker(struct 
work_struct *work)
        struct vblank_control_work *vblank_work =
                container_of(work, struct vblank_control_work, work);
        struct amdgpu_display_manager *dm = vblank_work->dm;
-       struct amdgpu_device *adev = drm_to_adev(dm->ddev);
-       int r;

        mutex_lock(&dm->dc_lock);

@@ -279,16 +277,7 @@ static void amdgpu_dm_crtc_vblank_control_worker(struct 
work_struct *work)

        if (dm->active_vblank_irq_count == 0) {
                dc_post_update_surfaces_to_stream(dm->dc);
-
-               r = amdgpu_dpm_pause_power_profile(adev, true);
-               if (r)
-                       dev_warn(adev->dev, "failed to set default power 
profile mode\n");
-
                dc_allow_idle_optimizations(dm->dc, true);
-
-               r = amdgpu_dpm_pause_power_profile(adev, false);
-               if (r)
-                       dev_warn(adev->dev, "failed to restore the power 
profile mode\n");
        }

        mutex_unlock(&dm->dc_lock);
--
2.52.0

Reply via email to