]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Fix idle optimizations entry log
authorAurabindo Pillai <aurabindo.pillai@amd.com>
Wed, 16 Oct 2024 17:08:02 +0000 (13:08 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 28 Oct 2024 20:36:43 +0000 (16:36 -0400)
[Why & How]
Whether we really enter idle optimizations are decided within DC.
Printing into dmesg before calling the DC API gives an incorrect
indication that we are entering idle optimization in cases where its
disabled manually.

To fix this, remove the print in DM and add them in DC

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Tom Chung <chiahsuan.chung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
drivers/gpu/drm/amd/display/dc/core/dc.c

index 171099a3ea05a08214e8d8b189b5308ceab601d9..8b5bea799a2413f5100d26a7af95de8c9fb472ef 100644 (file)
@@ -252,10 +252,8 @@ static void amdgpu_dm_crtc_vblank_control_worker(struct work_struct *work)
        else if (dm->active_vblank_irq_count)
                dm->active_vblank_irq_count--;
 
-       if (dm->active_vblank_irq_count > 0) {
-               DRM_DEBUG_KMS("Allow idle optimizations (MALL): false\n");
+       if (dm->active_vblank_irq_count > 0)
                dc_allow_idle_optimizations(dm->dc, false);
-       }
 
        /*
         * Control PSR based on vblank requirements from OS
@@ -274,10 +272,8 @@ static void amdgpu_dm_crtc_vblank_control_worker(struct work_struct *work)
                        vblank_work->stream->link->replay_settings.replay_feature_enabled);
        }
 
-       if (dm->active_vblank_irq_count == 0) {
-               DRM_DEBUG_KMS("Allow idle optimizations (MALL): true\n");
+       if (dm->active_vblank_irq_count == 0)
                dc_allow_idle_optimizations(dm->dc, true);
-       }
 
        mutex_unlock(&dm->dc_lock);
 
index 5a12fc75f97ff03ed974591d2b72ff6b60b97a0f..8a52fef46785c0da9c4fdf6ae46fb0e038c8b30a 100644 (file)
@@ -5429,8 +5429,10 @@ bool dc_set_ips_disable(struct dc *dc, unsigned int disable_ips)
 
 void dc_allow_idle_optimizations_internal(struct dc *dc, bool allow, char const *caller_name)
 {
-       if (dc->debug.disable_idle_power_optimizations)
+       if (dc->debug.disable_idle_power_optimizations) {
+               DC_LOG_DEBUG("%s: disabled\n", __func__);
                return;
+       }
 
        if (allow != dc->idle_optimizations_allowed)
                DC_LOG_IPS("%s: allow_idle old=%d new=%d (caller=%s)\n", __func__,
@@ -5447,8 +5449,10 @@ void dc_allow_idle_optimizations_internal(struct dc *dc, bool allow, char const
                return;
 
        if (dc->hwss.apply_idle_power_optimizations && dc->clk_mgr != NULL &&
-           dc->hwss.apply_idle_power_optimizations(dc, allow))
+           dc->hwss.apply_idle_power_optimizations(dc, allow)) {
                dc->idle_optimizations_allowed = allow;
+               DC_LOG_DEBUG("%s: %s\n", __func__, allow ? "enabled" : "disabled");
+       }
 }
 
 void dc_exit_ips_for_hw_access_internal(struct dc *dc, const char *caller_name)