From: Taimur Hassan <[email protected]>

[Why & How]
Symclk should be based on link_enc_inst, and symclk_fe_sel should be based
on stream_enc_inst.

Reviewed-by: Charlene Liu <[email protected]>
Acked-by: Aurabindo Pillai <[email protected]>
Signed-off-by: Taimur Hassan <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 +++-
 drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h                | 3 ++-
 2 files changed, 5 insertions(+), 2 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 1eb4f884e5bb..b4698108a7e9 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
@@ -1150,6 +1150,7 @@ void dce110_disable_stream(struct pipe_ctx *pipe_ctx)
        struct timing_generator *tg = pipe_ctx->stream_res.tg;
        struct dtbclk_dto_params dto_params = {0};
        int dp_hpo_inst;
+       struct link_encoder *link_enc = 
link_enc_cfg_get_link_enc(pipe_ctx->stream->link);
        struct stream_encoder *stream_enc = pipe_ctx->stream_res.stream_enc;
 
        if (dc_is_hdmi_tmds_signal(pipe_ctx->stream->signal)) {
@@ -1178,7 +1179,8 @@ void dce110_disable_stream(struct pipe_ctx *pipe_ctx)
                dccg->funcs->disable_symclk32_se(dccg, dp_hpo_inst);
                dccg->funcs->set_dpstreamclk(dccg, REFCLK, tg->inst, 
dp_hpo_inst);
        } else if (pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST && 
dccg->funcs->disable_symclk_se)
-               dccg->funcs->disable_symclk_se(dccg, 
stream_enc->stream_enc_inst);
+               dccg->funcs->disable_symclk_se(dccg, 
stream_enc->stream_enc_inst,
+                               link_enc->transmitter - TRANSMITTER_UNIPHY_A);
 
        if (dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
                /* TODO: This looks like a bug to me as we are disabling HPO IO 
when
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h 
b/drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h
index c378cb287a3a..3e2f0f64c98c 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h
@@ -180,7 +180,8 @@ struct dccg_funcs {
 
        void (*disable_symclk_se)(
                        struct dccg *dccg,
-                       uint32_t stream_enc_inst);
+                       uint32_t stream_enc_inst,
+                       uint32_t link_enc_inst);
 };
 
 #endif //__DAL_DCCG_H__
-- 
2.41.0

Reply via email to