]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Revert "not disable dtb as dto src at dpms off"
authorCharlene Liu <Charlene.Liu@amd.com>
Tue, 8 Apr 2025 20:35:38 +0000 (16:35 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 22 Apr 2025 12:51:44 +0000 (08:51 -0400)
[why]
not all the asic using the same code path.
need to revisit and limit the impact.

This reverts commit 32be4e39f459f3ac9c191569ae8e3731cb82f7ab.

Reviewed-by: Gabe Teeger <gabe.teeger@amd.com>
Signed-off-by: Charlene Liu <Charlene.Liu@amd.com>
Signed-off-by: Zaeem Mohamed <zaeem.mohamed@amd.com>
Tested-by: Mark Broadworth <mark.broadworth@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c

index 6fe26094addd79aef5ec8e1158a32f7e1dc18fd8..23bec5d25ed6c8928138b5e965ff6a5b0714f7b6 100644 (file)
@@ -1152,6 +1152,7 @@ void dce110_disable_stream(struct pipe_ctx *pipe_ctx)
        const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
        struct dccg *dccg = dc->res_pool->dccg;
        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 = pipe_ctx->link_res.dio_link_enc;
        struct stream_encoder *stream_enc = pipe_ctx->stream_res.stream_enc;
@@ -1178,10 +1179,14 @@ void dce110_disable_stream(struct pipe_ctx *pipe_ctx)
        link_hwss->reset_stream_encoder(pipe_ctx);
 
        if (dc->link_srv->dp_is_128b_132b_signal(pipe_ctx) && dccg) {
+               dto_params.otg_inst = tg->inst;
+               dto_params.timing = &pipe_ctx->stream->timing;
                dp_hpo_inst = pipe_ctx->stream_res.hpo_dp_stream_enc->inst;
                if (dccg) {
                        dccg->funcs->disable_symclk32_se(dccg, dp_hpo_inst);
                        dccg->funcs->set_dpstreamclk(dccg, REFCLK, tg->inst, dp_hpo_inst);
+                       if (dccg && dccg->funcs->set_dtbclk_dto)
+                               dccg->funcs->set_dtbclk_dto(dccg, &dto_params);
                }
        } else if (dccg && dccg->funcs->disable_symclk_se) {
                dccg->funcs->disable_symclk_se(dccg, stream_enc->stream_enc_inst,
index 959cd2fbb2507ab001edc62ac0cff164bc985bb0..846c9c51f2d981efb1db6b3a9a0642c6b81b7731 100644 (file)
@@ -2806,8 +2806,6 @@ void dcn20_reset_back_end_for_pipe(
 {
        struct dc_link *link = pipe_ctx->stream->link;
        const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
-       struct dccg *dccg = dc->res_pool->dccg;
-       struct dtbclk_dto_params dto_params = {0};
 
        DC_LOGGER_INIT(dc->ctx->logger);
        if (pipe_ctx->stream_res.stream_enc == NULL) {
@@ -2868,12 +2866,6 @@ void dcn20_reset_back_end_for_pipe(
                                        &pipe_ctx->link_res, pipe_ctx->stream->signal);
                        link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
                }
-               if (dc->link_srv->dp_is_128b_132b_signal(pipe_ctx) && dccg) {
-                       dto_params.otg_inst = pipe_ctx->stream_res.tg->inst;
-                       dto_params.timing = &pipe_ctx->stream->timing;
-                       if (dccg && dccg->funcs->set_dtbclk_dto)
-                               dccg->funcs->set_dtbclk_dto(dccg, &dto_params);
-               }
        }
 
 /*