From: Lewis Huang <lewis.hu...@amd.com>

[Why]
Signal is update to EDP when driver disable first encoder. The
following encoder using SIGNAL_TYPE_EDP to handle other
device. When encoder signal is HDMI, driver will detect it is dp
and release phy. It cause hw hang.

[How]
Take signal type from link->connector_signal.

Signed-off-by: Lewis Huang <lewis.hu...@amd.com>
Reviewed-by: Eric Yang <eric.ya...@amd.com>
Acked-by: Leo Li <sunpeng...@amd.com>
---
 .../drm/amd/display/dc/dce110/dce110_hw_sequencer.c   | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c 
b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
index 9150e546dcf2..f0e837d14000 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
@@ -1421,8 +1421,6 @@ static enum dc_status apply_single_controller_ctx_to_hw(
 static void power_down_encoders(struct dc *dc)
 {
        int i;
-       enum connector_id connector_id;
-       enum signal_type signal = SIGNAL_TYPE_NONE;
 
        /* do not know BIOS back-front mapping, simply blank all. It will not
         * hurt for non-DP
@@ -1433,15 +1431,12 @@ static void power_down_encoders(struct dc *dc)
        }
 
        for (i = 0; i < dc->link_count; i++) {
-               connector_id = 
dal_graphics_object_id_get_connector_id(dc->links[i]->link_id);
-               if ((connector_id == CONNECTOR_ID_DISPLAY_PORT) ||
-                       (connector_id == CONNECTOR_ID_EDP)) {
+               enum signal_type signal = dc->links[i]->connector_signal;
 
+               if ((signal == SIGNAL_TYPE_EDP) ||
+                       (signal == SIGNAL_TYPE_DISPLAY_PORT))
                        if (!dc->links[i]->wa_flags.dp_keep_receiver_powered)
                                dp_receiver_power_ctrl(dc->links[i], false);
-                       if (connector_id == CONNECTOR_ID_EDP)
-                               signal = SIGNAL_TYPE_EDP;
-               }
 
                dc->links[i]->link_enc->funcs->disable_output(
                                dc->links[i]->link_enc, signal);
-- 
2.23.0

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to