Skip to content

Commit 7f2b523

Browse files
melissawenalexdeucher
authored andcommitted
drm/amd/display: restore invalid MSA timing check for freesync
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
1 parent 9078a5b commit 7f2b523

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
@@ -12326,10 +12326,14 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
1232612326

1232712327
if (edid && (sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT ||
1232812328
sink->sink_signal == SIGNAL_TYPE_EDP)) {
12329-
amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq;
12330-
amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq;
12331-
if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
12332-
freesync_capable = true;
12329+
if (amdgpu_dm_connector->dc_link &&
12330+
amdgpu_dm_connector->dc_link->dpcd_caps.allow_invalid_MSA_timing_param) {
12331+
amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq;
12332+
amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq;
12333+
if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
12334+
freesync_capable = true;
12335+
}
12336+
1233312337
parse_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);
1233412338

1233512339
if (vsdb_info.replay_mode) {

0 commit comments

Comments
 (0)