[PATCH 04/27] drm/amd/display: add DP2.0 debug option to set MST_EN for SST stream

2021-10-15 Thread Agustin Gutierrez
From: Wenjing Liu 

[why]
Some DP2.0 RX requires us to set MST_EN even for SST configuration.
We added this debug option so we can configure this temporary workaround
for the RX.

Reviewed-by: George Shen 
Acked-by: Agustin Gutierrez Sanchez 
Signed-off-by: Wenjing Liu 
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 7 ++-
 drivers/gpu/drm/amd/display/dc/dc.h   | 1 +
 2 files changed, 7 insertions(+), 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 ca5dc3c168ec..fa11a2b094ba 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -1869,8 +1869,13 @@ static enum dc_status enable_link_dp(struct dc_state 
*state,
do_fallback = true;
 
 #if defined(CONFIG_DRM_AMD_DC_DCN)
+   /*
+* Temporary w/a to get DP2.0 link rates to work with SST.
+* TODO DP2.0 - Workaround: Remove w/a if and when the issue is 
resolved.
+*/
if (dp_get_link_encoding_format(&link_settings) == 
DP_128b_132b_ENCODING &&
-   pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT) {
+   pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT &&
+   link->dc->debug.set_mst_en_for_sst) {
dp_enable_mst_on_sink(link, true);
}
 #endif
diff --git a/drivers/gpu/drm/amd/display/dc/dc.h 
b/drivers/gpu/drm/amd/display/dc/dc.h
index dd995905b0cb..254b760ae91f 100644
--- a/drivers/gpu/drm/amd/display/dc/dc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc.h
@@ -664,6 +664,7 @@ struct dc_debug_options {
 #if defined(CONFIG_DRM_AMD_DC_DCN)
/* TODO - remove once tested */
bool legacy_dp2_lt;
+   bool set_mst_en_for_sst;
 #endif
union mem_low_power_enable_options enable_mem_low_power;
union root_clock_optimization_options root_clock_optimization;
-- 
2.25.1



[PATCH 04/27] drm/amd/display: add DP2.0 debug option to set MST_EN for SST stream

2021-10-15 Thread Agustin Gutierrez
From: Wenjing Liu 

[why]
Some DP2.0 RX requires us to set MST_EN even for SST configuration.
We added this debug option so we can configure this temporary workaround
for the RX.

Reviewed-by: George Shen 
Acked-by: Agustin Gutierrez Sanchez 
Signed-off-by: Wenjing Liu 
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 7 ++-
 drivers/gpu/drm/amd/display/dc/dc.h   | 1 +
 2 files changed, 7 insertions(+), 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 ca5dc3c168ec..fa11a2b094ba 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -1869,8 +1869,13 @@ static enum dc_status enable_link_dp(struct dc_state 
*state,
do_fallback = true;
 
 #if defined(CONFIG_DRM_AMD_DC_DCN)
+   /*
+* Temporary w/a to get DP2.0 link rates to work with SST.
+* TODO DP2.0 - Workaround: Remove w/a if and when the issue is 
resolved.
+*/
if (dp_get_link_encoding_format(&link_settings) == 
DP_128b_132b_ENCODING &&
-   pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT) {
+   pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT &&
+   link->dc->debug.set_mst_en_for_sst) {
dp_enable_mst_on_sink(link, true);
}
 #endif
diff --git a/drivers/gpu/drm/amd/display/dc/dc.h 
b/drivers/gpu/drm/amd/display/dc/dc.h
index dd995905b0cb..254b760ae91f 100644
--- a/drivers/gpu/drm/amd/display/dc/dc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc.h
@@ -664,6 +664,7 @@ struct dc_debug_options {
 #if defined(CONFIG_DRM_AMD_DC_DCN)
/* TODO - remove once tested */
bool legacy_dp2_lt;
+   bool set_mst_en_for_sst;
 #endif
union mem_low_power_enable_options enable_mem_low_power;
union root_clock_optimization_options root_clock_optimization;
-- 
2.25.1