Commit b316727a authored by Gergo Koteles's avatar Gergo Koteles Committed by Alex Deucher
Browse files

drm/amd/display: do not copy invalid CRTC timing info

Since b255ce43, it is possible that the CRTC timing
information for the preferred mode has not yet been
calculated while amdgpu_dm_connector_mode_valid() is running.

In this case use the CRTC timing information of the actual mode.

Fixes: b255ce43 ("drm/amdgpu: don't change mode in amdgpu_dm_connector_mode_valid()")
Closes: https://lore.kernel.org/all/ed09edb167e74167a694f4854102a3de6d2f1433.camel@irl.hu/
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4085


Signed-off-by: default avatarGergo Koteles <soyer@irl.hu>
Reviewed-by: default avatarZaeem Mohamed <zaeem.mohamed@amd.com>
Tested-by: default avatarMark Broadworth <mark.broadworth@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 20232192)
Cc: stable@vger.kernel.org
parent 6ed0dc3f
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -6501,11 +6501,11 @@ decide_crtc_timing_for_drm_display_mode(struct drm_display_mode *drm_mode,
					const struct drm_display_mode *native_mode,
					bool scale_enabled)
{
	if (scale_enabled) {
		copy_crtc_timing_for_drm_display_mode(native_mode, drm_mode);
	} else if (native_mode->clock == drm_mode->clock &&
	if (scale_enabled || (
	    native_mode->clock == drm_mode->clock &&
	    native_mode->htotal == drm_mode->htotal &&
			native_mode->vtotal == drm_mode->vtotal) {
	    native_mode->vtotal == drm_mode->vtotal)) {
		if (native_mode->crtc_clock)
			copy_crtc_timing_for_drm_display_mode(native_mode, drm_mode);
	} else {
		/* no scaling nor amdgpu inserted, no need to patch */