summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display
diff options
context:
space:
mode:
authorJack Chang <jack.chang@amd.com>2025-09-11 16:22:53 +0800
committerAlex Deucher <alexander.deucher@amd.com>2025-12-08 13:56:36 -0500
commit5e07a945856df30618be02a14e88180f09235ca0 (patch)
tree73e081d10f576c636eb8acd54a3b011e2edf4bdd /drivers/gpu/drm/amd/display
parent74ce00932e7eec6a985c2b650e95fce0f334d772 (diff)
drm/amd/display: Add AS-SDP v2 support for eDP feature
[WHY & HOW] VESA Panel Replay requires AS-SDP v2 support. Need to add checking flow to enable AS-SDP v2 in this case. Reviewed-by: Robin Chen <robin.chen@amd.com> Signed-off-by: Jack Chang <jack.chang@amd.com> Signed-off-by: Leon Huang <Leon.Huang1@amd.com> Signed-off-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display')
-rw-r--r--drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c b/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
index b3d55cac3569..251b7b6f45af 100644
--- a/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
+++ b/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
@@ -537,7 +537,11 @@ void mod_build_adaptive_sync_infopacket(const struct dc_stream_state *stream,
break;
case FREESYNC_TYPE_PCON_IN_WHITELIST:
case ADAPTIVE_SYNC_TYPE_EDP:
- mod_build_adaptive_sync_infopacket_v1(info_packet);
+ if (stream && stream->link->replay_settings.config.replay_supported &&
+ stream->link->replay_settings.config.replay_version == DC_VESA_PANEL_REPLAY)
+ mod_build_adaptive_sync_infopacket_v2(stream, param, info_packet);
+ else
+ mod_build_adaptive_sync_infopacket_v1(info_packet);
break;
case ADAPTIVE_SYNC_TYPE_NONE:
case FREESYNC_TYPE_PCON_NOT_IN_WHITELIST:
@@ -567,13 +571,15 @@ void mod_build_adaptive_sync_infopacket_v2(const struct dc_stream_state *stream,
info_packet->hb2 = AS_SDP_VER_2;
info_packet->hb3 = AS_DP_SDP_LENGTH;
- //Payload
- info_packet->sb[0] = param->supportMode; //1: AVT; 0: FAVT
- info_packet->sb[1] = (stream->timing.v_total & 0x00FF);
- info_packet->sb[2] = (stream->timing.v_total & 0xFF00) >> 8;
- //info_packet->sb[3] = 0x00; Target RR, not use fot AVT
- info_packet->sb[4] = (param->increase.support << 6 | param->decrease.support << 7);
- info_packet->sb[5] = param->increase.frame_duration_hex;
- info_packet->sb[6] = param->decrease.frame_duration_hex;
+ if (param) {
+ //Payload
+ info_packet->sb[0] = param->supportMode; //1: AVT; 0: FAVT
+ info_packet->sb[1] = (stream->timing.v_total & 0x00FF);
+ info_packet->sb[2] = (stream->timing.v_total & 0xFF00) >> 8;
+ //info_packet->sb[3] = 0x00; Target RR, not use fot AVT
+ info_packet->sb[4] = (param->increase.support << 6 | param->decrease.support << 7);
+ info_packet->sb[5] = param->increase.frame_duration_hex;
+ info_packet->sb[6] = param->decrease.frame_duration_hex;
+ }
}