From: Alex Hung <[email protected]>

[Why & How]
This fixes the black screen issue on certain APUs with HDMI,
accompanied by the following messages:

amdgpu 0000:c4:00.0: amdgpu: [drm] Failed to setup vendor info
                     frame on connector DP-1: -22
amdgpu 0000:c4:00.0: [drm] Cannot find any crtc or sizes [drm]
                     Cannot find any crtc or sizes

Fixes: 99ff9bc57b02 ("drm/amd/display: Fix DVI-D/HDMI adapters")
Suggested-by: Timur Kristóf <[email protected]>
Reviewed-by: Harry Wentland <[email protected]>
Signed-off-by: Alex Hung <[email protected]>
Signed-off-by: Ray Wu <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/link/link_detection.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/link/link_detection.c 
b/drivers/gpu/drm/amd/display/dc/link/link_detection.c
index c417780f37bc..e8566a5218fc 100644
--- a/drivers/gpu/drm/amd/display/dc/link/link_detection.c
+++ b/drivers/gpu/drm/amd/display/dc/link/link_detection.c
@@ -1252,11 +1252,16 @@ static bool detect_link_and_local_sink(struct dc_link 
*link,
                        sink->edid_caps.analog)
                        sink->sink_signal = SIGNAL_TYPE_RGB;
 
+               if (sink->sink_signal != link->connector_signal)
+                       DC_LOG_WARNING("sink_signal (%d) does not match 
connector_signal (%d)\n",
+                                       sink->sink_signal, 
link->connector_signal);
+
                /* HDMI-DVI Dongle */
                if (sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A &&
                    !sink->edid_caps.edid_hdmi)
                        sink->sink_signal = SIGNAL_TYPE_DVI_SINGLE_LINK;
                else if (dc_is_dvi_signal(sink->sink_signal) &&
+                        dc_is_dvi_signal(link->connector_signal) &&
                         aud_support->hdmi_audio_native &&
                         sink->edid_caps.edid_hdmi)
                        sink->sink_signal = SIGNAL_TYPE_HDMI_TYPE_A;
-- 
2.43.0

Reply via email to