From: Dmytro Laktyushkin <[email protected]>

Change-Id: Ida231f68edd0ea89e12e578fa7c1b2ae86d91315
Signed-off-by: Dmytro Laktyushkin <[email protected]>
Reviewed-by: Eric Bernstein <[email protected]>
Acked-by: Bhawanpreet Lakha <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c               | 1 +
 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c            | 5 ++++-
 drivers/gpu/drm/amd/display/dc/dc_link.h                    | 1 +
 drivers/gpu/drm/amd/display/include/grph_object_ctrl_defs.h | 2 ++
 4 files changed, 8 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 25e924f93ae8..063f6660c570 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -1026,6 +1026,7 @@ static bool construct(
        link->link_index = init_params->link_index;
 
        link->link_id = bios->funcs->get_connector_id(bios, 
init_params->connector_index);
+       link->dp_ss_off = !!dc_ctx->dc_bios->integrated_info->dp_ss_control;;
 
        if (link->link_id.type != OBJECT_TYPE_CONNECTOR) {
                dm_error("%s: Invalid Connector ObjectID from Adapter Service 
for connector index:%d! type %d expected %d\n",
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
index e8a69d7312c8..d91df5ef0cb3 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
@@ -953,7 +953,10 @@ enum link_training_result dc_link_dp_perform_link_training(
         * LINK_SPREAD_05_DOWNSPREAD_30KHZ :
         * LINK_SPREAD_DISABLED;
         */
-       lt_settings.link_settings.link_spread = LINK_SPREAD_05_DOWNSPREAD_30KHZ;
+       if (link->dp_ss_off)
+               lt_settings.link_settings.link_spread = LINK_SPREAD_DISABLED;
+       else
+               lt_settings.link_settings.link_spread = 
LINK_SPREAD_05_DOWNSPREAD_30KHZ;
 
        /* 1. set link rate, lane count and spread*/
        dpcd_set_link_settings(link, &lt_settings);
diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h 
b/drivers/gpu/drm/amd/display/dc/dc_link.h
index 22f4ddd219d1..d43cefbc43d3 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_link.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_link.h
@@ -73,6 +73,7 @@ struct dc_link {
        enum dc_irq_source irq_source_hpd;
        enum dc_irq_source irq_source_hpd_rx;/* aka DP Short Pulse  */
        bool is_hpd_filter_disabled;
+       bool dp_ss_off;
 
        /* caps is the same as reported_link_cap. link_traing use
         * reported_link_cap. Will clean up.  TODO
diff --git a/drivers/gpu/drm/amd/display/include/grph_object_ctrl_defs.h 
b/drivers/gpu/drm/amd/display/include/grph_object_ctrl_defs.h
index 36bbad594267..f312834fef50 100644
--- a/drivers/gpu/drm/amd/display/include/grph_object_ctrl_defs.h
+++ b/drivers/gpu/drm/amd/display/include/grph_object_ctrl_defs.h
@@ -395,6 +395,8 @@ struct integrated_info {
        struct i2c_reg_info dp3_ext_hdmi_reg_settings[9];
        unsigned char dp3_ext_hdmi_6g_reg_num;
        struct i2c_reg_info dp3_ext_hdmi_6g_reg_settings[3];
+       /* V11 */
+       uint32_t dp_ss_control;
 };
 
 /**
-- 
2.14.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to