summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllen Li <Allen.Li@amd.com>2026-09-18 15:16:51 +0800
committerAlex Deucher <alexander.deucher@amd.com>2026-10-07 12:06:14 -0400
commit9fac7d8be40a10c6bd4e5f954736bd21158f0a7a (patch)
treec789c1e3c9d92935cdd1b559698cecc2d43a5283
parentbfcfa7b9569c25bcaf13de8191f744261fe4fdf5 (diff)
drm/amd/display: Skip link off frame count for general UI
[Why&How] To improve power saving of Replay, skip the link off frame count check for general UI in DC mode. Also disable timing sync in the same condition. Reviewed-by: ChunTao (Chun-Tao) Tso <chuntao.tso@amd.com> Signed-off-by: Allen Li <Allen.Li@amd.com> Signed-off-by: Roman Li <roman.li@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/display/dc/dc_types.h2
-rw-r--r--drivers/gpu/drm/amd/display/modules/power/power_replay.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h
index 7ff2152ff233..af241b2bd29a 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_types.h
@@ -1311,6 +1311,8 @@ struct replay_settings {
uint32_t replay_events;
/* Last ABM periodic keep-alive FFU allowed bit sent to DMUB (VESA PR) */
bool last_abm_periodic_ffu_allowed;
+ /* System is in DC mode */
+ bool system_in_dc;
};
/* To split out "global" and "per-panel" config settings.
diff --git a/drivers/gpu/drm/amd/display/modules/power/power_replay.c b/drivers/gpu/drm/amd/display/modules/power/power_replay.c
index 7861e46c612d..666585b7e00c 100644
--- a/drivers/gpu/drm/amd/display/modules/power/power_replay.c
+++ b/drivers/gpu/drm/amd/display/modules/power/power_replay.c
@@ -338,9 +338,11 @@ static bool mod_power_update_replay_active_status(unsigned int active_replay_eve
/* General UI scenario */
if (active_replay_events & replay_event_general_ui) {
- if (replay_enable_option & pr_enable_option_general_ui)
+ if (replay_enable_option & pr_enable_option_general_ui) {
+ if (link->replay_settings.system_in_dc)
+ link->replay_settings.config.replay_timing_sync_supported = false;
return true;
- else
+ } else
return false;
}