Skip to content

Commit d718dad

Browse files
melissawengregkh
authored andcommitted
drm/amd/display: restore invalid MSA timing check for freesync
commit 7f2b523 upstream. This restores the original behavior that gets min/max freq from EDID and only set DP/eDP connector as freesync capable if "sink device is capable of rendering incoming video stream without MSA timing parameters", i.e., `allow_invalid_MSA_timing_params` is true. The condition was mistakenly removed by 0159f88 ("drm/amd/display: remove redundant freesync parser for DP"). CC: Mario Limonciello <mario.limonciello@amd.com> CC: Alex Hung <alex.hung@amd.com> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3915 Fixes: 0159f88 ("drm/amd/display: remove redundant freesync parser for DP") Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Melissa Wen <mwen@igalia.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent e669359 commit d718dad

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12227,10 +12227,14 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
1222712227

1222812228
if (edid && (sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT ||
1222912229
sink->sink_signal == SIGNAL_TYPE_EDP)) {
12230-
amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq;
12231-
amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq;
12232-
if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
12233-
freesync_capable = true;
12230+
if (amdgpu_dm_connector->dc_link &&
12231+
amdgpu_dm_connector->dc_link->dpcd_caps.allow_invalid_MSA_timing_param) {
12232+
amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq;
12233+
amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq;
12234+
if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
12235+
freesync_capable = true;
12236+
}
12237+
1223412238
parse_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);
1223512239

1223612240
if (vsdb_info.replay_mode) {

0 commit comments

Comments
 (0)