Commit 6cb2ce8e authored by Chris Park's avatar Chris Park Committed by Alex Deucher
Browse files

drm/amd/display: Disconnect non-DP with no EDID



[Why]
Active DP dongles return no EDID when dongle
is connected, but VGA display is taken out.
Current driver behavior does not remove the
active display when this happens, and this is
a gap between dongle DTP and dongle behavior.

[How]
For active DP dongles and non-DP scenario,
disconnect sink on detection when no EDID
is read due to timeout.

Signed-off-by: default avatarChris Park <Chris.Park@amd.com>
Reviewed-by: default avatarNicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: default avatarStylon Wang <stylon.wang@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 5e9ff159
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -1099,6 +1099,24 @@ static bool dc_link_detect_helper(struct dc_link *link,
			    dc_is_dvi_signal(link->connector_signal)) {
				if (prev_sink)
					dc_sink_release(prev_sink);
				link_disconnect_sink(link);

				return false;
			}
			/*
			 * Abort detection for DP connectors if we have
			 * no EDID and connector is active converter
			 * as there are no display downstream
			 *
			 */
			if (dc_is_dp_sst_signal(link->connector_signal) &&
				(link->dpcd_caps.dongle_type ==
						DISPLAY_DONGLE_DP_VGA_CONVERTER ||
				link->dpcd_caps.dongle_type ==
						DISPLAY_DONGLE_DP_DVI_CONVERTER)) {
				if (prev_sink)
					dc_sink_release(prev_sink);
				link_disconnect_sink(link);

				return false;
			}