]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amd/display: Return early from vesa replay enable function
authorPeichen Huang <PeiChen.Huang@amd.com>
Fri, 6 Feb 2026 07:10:25 +0000 (15:10 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 11 Mar 2026 14:53:20 +0000 (10:53 -0400)
[WHY & HOW]
If the enable state is already as expect then just return.

Reviewed-by: Robin Chen <robin.chen@amd.com>
Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
Signed-off-by: Peichen Huang <PeiChen.Huang@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c

index 6661078c0241f9e118dbcbd628b1864f3f4d07aa..96afce4ffbfa2b8afe27ad223121dd20e6d6130a 100644 (file)
@@ -252,23 +252,24 @@ bool dp_pr_enable(struct dc_link *link, bool enable)
        if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
                return false;
 
+       if (link->replay_settings.replay_allow_active == enable)
+               return true;
+
        if (enable && !dc_is_embedded_signal(link->connector_signal))
                dp_pr_set_static_screen_param(link);
 
-       if (link->replay_settings.replay_allow_active != enable) {
-               //for sending PR enable commands to DMUB
-               memset(&cmd, 0, sizeof(cmd));
+       // for sending PR enable commands to DMUB
+       memset(&cmd, 0, sizeof(cmd));
 
-               cmd.pr_enable.header.type = DMUB_CMD__PR;
-               cmd.pr_enable.header.sub_type = DMUB_CMD__PR_ENABLE;
-               cmd.pr_enable.header.payload_bytes = sizeof(struct dmub_cmd_pr_enable_data);
-               cmd.pr_enable.data.panel_inst = panel_inst;
-               cmd.pr_enable.data.enable = enable ? 1 : 0;
+       cmd.pr_enable.header.type = DMUB_CMD__PR;
+       cmd.pr_enable.header.sub_type = DMUB_CMD__PR_ENABLE;
+       cmd.pr_enable.header.payload_bytes = sizeof(struct dmub_cmd_pr_enable_data);
+       cmd.pr_enable.data.panel_inst = panel_inst;
+       cmd.pr_enable.data.enable = enable ? 1 : 0;
+       dc_wake_and_execute_dmub_cmd(dc->ctx, &cmd, DM_DMUB_WAIT_TYPE_WAIT);
 
-               dc_wake_and_execute_dmub_cmd(dc->ctx, &cmd, DM_DMUB_WAIT_TYPE_WAIT);
+       link->replay_settings.replay_allow_active = enable;
 
-               link->replay_settings.replay_allow_active = enable;
-       }
        return true;
 }