Skip to content

Commit 0800392

Browse files
Chris Parkalexdeucher
authored andcommitted
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: Chris Park <Chris.Park@amd.com> Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> Acked-by: Stylon Wang <stylon.wang@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent dbd1003 commit 0800392

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

drivers/gpu/drm/amd/display/dc/core/dc_link.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,24 @@ static bool dc_link_detect_helper(struct dc_link *link,
10761076
dc_is_dvi_signal(link->connector_signal)) {
10771077
if (prev_sink)
10781078
dc_sink_release(prev_sink);
1079+
link_disconnect_sink(link);
1080+
1081+
return false;
1082+
}
1083+
/*
1084+
* Abort detection for DP connectors if we have
1085+
* no EDID and connector is active converter
1086+
* as there are no display downstream
1087+
*
1088+
*/
1089+
if (dc_is_dp_sst_signal(link->connector_signal) &&
1090+
(link->dpcd_caps.dongle_type ==
1091+
DISPLAY_DONGLE_DP_VGA_CONVERTER ||
1092+
link->dpcd_caps.dongle_type ==
1093+
DISPLAY_DONGLE_DP_DVI_CONVERTER)) {
1094+
if (prev_sink)
1095+
dc_sink_release(prev_sink);
1096+
link_disconnect_sink(link);
10791097

10801098
return false;
10811099
}

0 commit comments

Comments
 (0)