| From 1e69476b6e7320d81c8b5dd6bf8fb01bb4c6c004 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 21 Sep 2020 17:52:43 -0400 |
| Subject: drm/amd/display: HDMI remote sink need mode validation for Linux |
| |
| From: Fangzhi Zuo <Jerry.Zuo@amd.com> |
| |
| [ Upstream commit 95d620adb48f7728e67d82f56f756e8d451cf8d2 ] |
| |
| [Why] |
| Currently mode validation is bypassed if remote sink exists. That |
| leads to mode set issue when a BW bottle neck exists in the link path, |
| e.g., a DP-to-HDMI converter that only supports HDMI 1.4. |
| |
| Any invalid mode passed to Linux user space will cause the modeset |
| failure due to limitation of Linux user space implementation. |
| |
| [How] |
| Mode validation is skipped only if in edid override. For real remote |
| sink, clock limit check should be done for HDMI remote sink. |
| |
| Have HDMI related remote sink going through mode validation to |
| elimiate modes which pixel clock exceeds BW limitation. |
| |
| Signed-off-by: Fangzhi Zuo <Jerry.Zuo@amd.com> |
| Reviewed-by: Hersen Wu <hersenxs.wu@amd.com> |
| Acked-by: Eryk Brol <eryk.brol@amd.com> |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c |
| index 437d1a7a16fe7..b0f8bfd48d102 100644 |
| --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c |
| +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c |
| @@ -2441,7 +2441,7 @@ enum dc_status dc_link_validate_mode_timing( |
| /* A hack to avoid failing any modes for EDID override feature on |
| * topology change such as lower quality cable for DP or different dongle |
| */ |
| - if (link->remote_sinks[0]) |
| + if (link->remote_sinks[0] && link->remote_sinks[0]->sink_signal == SIGNAL_TYPE_VIRTUAL) |
| return DC_OK; |
| |
| /* Passive Dongle */ |
| -- |
| 2.27.0 |
| |