Commit e3fa5c4c authored by Jerry (Fangzhi) Zuo's avatar Jerry (Fangzhi) Zuo Committed by Alex Deucher

drm/amd/display: Apply fake sink back to MST sequence

[Why]
It fixes the failure to create stream for sink in the scenario
when hotplug SST and MST in sequence, and disconnect MST.

[How]
Add the fake sink back after the majority of MST rework is done.
Signed-off-by: default avatarJerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
Reviewed-by: default avatarNicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Acked-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 49782c63
...@@ -2959,11 +2959,9 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector, ...@@ -2959,11 +2959,9 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector,
drm_connector = &aconnector->base; drm_connector = &aconnector->base;
if (!aconnector->dc_sink) { if (!aconnector->dc_sink) {
if (!aconnector->mst_port) { sink = create_fake_sink(aconnector);
sink = create_fake_sink(aconnector); if (!sink)
if (!sink) return stream;
return stream;
}
} else { } else {
sink = aconnector->dc_sink; sink = aconnector->dc_sink;
} }
......
...@@ -173,6 +173,9 @@ static int dm_dp_mst_get_modes(struct drm_connector *connector) ...@@ -173,6 +173,9 @@ static int dm_dp_mst_get_modes(struct drm_connector *connector)
aconnector->edid = edid; aconnector->edid = edid;
} }
if (aconnector->dc_sink && aconnector->dc_sink->sink_signal == SIGNAL_TYPE_VIRTUAL)
dc_sink_release(aconnector->dc_sink);
if (!aconnector->dc_sink) { if (!aconnector->dc_sink) {
struct dc_sink *dc_sink; struct dc_sink *dc_sink;
struct dc_sink_init_data init_params = { struct dc_sink_init_data init_params = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment