]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amd/display: Add Auxless-ALPM support in VESA Panel Replay
authorLeon Huang <Leon.Huang1@amd.com>
Thu, 30 Apr 2026 06:53:21 +0000 (14:53 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 May 2026 15:45:41 +0000 (11:45 -0400)
[How]
Add Auxless-ALPM data in VESA PR initialization

Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
Signed-off-by: Leon Huang <Leon.Huang1@amd.com>
Signed-off-by: Ivan Lipski <ivan.lipski@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 72d6e6011a09ab3a98a6ad200250d90eafb2970e..d87f87a02d63eb244ba8182a5ece38ae162a7bb1 100644 (file)
@@ -321,6 +321,19 @@ bool dp_pr_copy_settings(struct dc_link *link, struct replay_context *replay_con
        cmd.pr_copy_settings.data.flags.bitfields.dsc_enable_status = (pipe_ctx->stream->timing.flags.DSC == 1);
        cmd.pr_copy_settings.data.debug.u32All = link->replay_settings.config.debug_flags;
 
+       // ALPM settings
+       cmd.pr_copy_settings.data.flags.bitfields.alpm_mode = (enum dmub_alpm_mode)link->replay_settings.config.alpm_mode;
+       if (link->replay_settings.config.alpm_mode == DC_ALPM_AUXLESS) {
+               cmd.pr_copy_settings.data.auxless_alpm_data.lfps_setup_ns = (uint16_t)dc->debug.auxless_alpm_lfps_setup_ns;
+               cmd.pr_copy_settings.data.auxless_alpm_data.lfps_period_ns = (uint16_t)dc->debug.auxless_alpm_lfps_period_ns;
+               cmd.pr_copy_settings.data.auxless_alpm_data.lfps_silence_ns = (uint16_t)dc->debug.auxless_alpm_lfps_silence_ns;
+               cmd.pr_copy_settings.data.auxless_alpm_data.lfps_t1_t2_override_us =
+                       (uint16_t)dc->debug.auxless_alpm_lfps_t1t2_us;
+               cmd.pr_copy_settings.data.auxless_alpm_data.lfps_t1_t2_offset_us =
+                       (uint16_t)dc->debug.auxless_alpm_lfps_t1t2_offset_us;
+               cmd.pr_copy_settings.data.auxless_alpm_data.lttpr_count = link->dc->link_srv->dp_get_lttpr_count(link);
+       }
+
        cmd.pr_copy_settings.data.su_granularity_needed = link->dpcd_caps.vesa_replay_caps.bits.PR_SU_GRANULARITY_NEEDED;
        cmd.pr_copy_settings.data.su_x_granularity = link->dpcd_caps.vesa_replay_su_info.pr_su_x_granularity;
        cmd.pr_copy_settings.data.su_y_granularity = link->dpcd_caps.vesa_replay_su_info.pr_su_y_granularity;