From: Charlene Liu <[email protected]>

This partially reverts commit 005452bcce65 ("Revert "drm/amd/display: Move 
setup_stream_attribute"").

[Why]
The original revert was applied to avoid HDMI blank screen regression.
The root cause has been identified and the setup_stream_attribute call
can now be moved back to enable_stream where it belongs.

Reviewed-by: Yihan Zhu <[email protected]>
Signed-off-by: Charlene Liu <[email protected]>
Signed-off-by: Roman Li <[email protected]>
---
 .../display/dc/dio/virtual/virtual_stream_encoder.c    | 10 ++++++++++
 .../gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c    |  2 ++
 drivers/gpu/drm/amd/display/dc/link/link_dpms.c        |  3 ---
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git 
a/drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c 
b/drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
index 5be18cf54a13..4b27e3887822 100644
--- a/drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
+++ b/drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
@@ -59,6 +59,14 @@ static void virtual_stream_encoder_dvi_set_stream_attribute(
                (void)is_dual_link;
        }
 
+static void virtual_stream_encoder_lvds_set_stream_attribute(
+       struct stream_encoder *enc,
+       struct dc_crtc_timing *crtc_timing)
+{
+       (void)enc;
+       (void)crtc_timing;
+}
+
 static void virtual_stream_encoder_set_throttled_vcp_size(
        struct stream_encoder *enc,
        struct fixed31_32 avg_time_slots_per_mtp) {
@@ -162,6 +170,8 @@ static const struct stream_encoder_funcs 
virtual_str_enc_funcs = {
                virtual_stream_encoder_hdmi_set_stream_attribute,
        .dvi_set_stream_attribute =
                virtual_stream_encoder_dvi_set_stream_attribute,
+       .lvds_set_stream_attribute =
+               virtual_stream_encoder_lvds_set_stream_attribute,
        .set_throttled_vcp_size =
                virtual_stream_encoder_set_throttled_vcp_size,
        .update_hdmi_info_packets =
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c 
b/drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
index 288e4edaa9a2..494fdc4bfa7c 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
@@ -3064,6 +3064,8 @@ void dcn20_enable_stream(struct pipe_ctx *pipe_ctx)
                }
        }
 
+       link_hwss->setup_stream_attribute(pipe_ctx);
+
        if (dc->res_pool->dccg->funcs->set_pixel_rate_div)
                dc->res_pool->dccg->funcs->set_pixel_rate_div(
                        dc->res_pool->dccg,
diff --git a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c 
b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
index e12c25896364..bd7a9248cdd7 100644
--- a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
+++ b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
@@ -2285,7 +2285,6 @@ void link_set_dpms_on(
        struct link_encoder *link_enc = pipe_ctx->link_res.dio_link_enc;
        enum otg_out_mux_dest otg_out_dest = OUT_MUX_DIO;
        struct vpg *vpg = pipe_ctx->stream_res.stream_enc->vpg;
-       const struct link_hwss *link_hwss = get_link_hwss(link, 
&pipe_ctx->link_res);
        bool apply_edp_fast_boot_optimization =
                pipe_ctx->stream->apply_edp_fast_boot_optimization;
 
@@ -2331,8 +2330,6 @@ void link_set_dpms_on(
                
pipe_ctx->stream_res.tg->funcs->set_out_mux(pipe_ctx->stream_res.tg, 
otg_out_dest);
        }
 
-       link_hwss->setup_stream_attribute(pipe_ctx);
-
        pipe_ctx->stream->apply_edp_fast_boot_optimization = false;
 
        // Enable VPG before building infoframe
-- 
2.34.1

Reply via email to