From: Hersen Wu <hersenxs...@amd.com>

Signed-off-by: Hersen Wu <hersenxs...@amd.com>
Acked-by: Harry Wentland <harry.wentl...@amd.com>
---
 .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c    | 50 +++++++++++-----------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c 
b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
index 2fd2bc794de4..1da40156cb9a 100644
--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
@@ -774,6 +774,12 @@ static enum dc_status apply_single_controller_ctx_to_hw(
        struct tg_color black_color = {0};
 
        if (!pipe_ctx_old->stream) {
+
+               /* program blank color */
+               color_space_to_black_color(stream->public.output_color_space, 
&black_color);
+               pipe_ctx->tg->funcs->set_blank_color(
+                               pipe_ctx->tg,
+                               &black_color);
                /*
                 * Must blank CRTC after disabling power gating and before any
                 * programming, otherwise CRTC will be hung in bad state
@@ -794,14 +800,6 @@ static enum dc_status apply_single_controller_ctx_to_hw(
                                true);
        }
 
-       /*TODO: mst support - use total stream count*/
-       pipe_ctx->mi->funcs->allocate_mem_input(
-                                       pipe_ctx->mi,
-                                       stream->public.timing.h_total,
-                                       stream->public.timing.v_total,
-                                       stream->public.timing.pix_clk_khz,
-                                       context->target_count);
-
        if (!pipe_ctx_old->stream) {
                if (false == pipe_ctx->tg->funcs->enable_crtc(
                                pipe_ctx->tg)) {
@@ -810,13 +808,6 @@ static enum dc_status apply_single_controller_ctx_to_hw(
                }
        }
 
-       /* TODO: move to stream encoder */
-       if (pipe_ctx->stream->signal != SIGNAL_TYPE_VIRTUAL)
-               if (DC_OK != bios_parser_crtc_source_select(pipe_ctx)) {
-                       BREAK_TO_DEBUGGER();
-                       return DC_ERROR_UNEXPECTED;
-               }
-
        pipe_ctx->opp->funcs->opp_set_dyn_expansion(
                        pipe_ctx->opp,
                        COLOR_SPACE_YCBCR601,
@@ -828,6 +819,13 @@ static enum dc_status apply_single_controller_ctx_to_hw(
                        &stream->bit_depth_params,
                        &stream->clamping);
 
+       /* TODO: move to stream encoder */
+       if (pipe_ctx->stream->signal != SIGNAL_TYPE_VIRTUAL)
+               if (DC_OK != bios_parser_crtc_source_select(pipe_ctx)) {
+                       BREAK_TO_DEBUGGER();
+                       return DC_ERROR_UNEXPECTED;
+               }
+
        if (pipe_ctx->stream->signal != SIGNAL_TYPE_VIRTUAL)
                stream->sink->link->link_enc->funcs->setup(
                        stream->sink->link->link_enc,
@@ -852,12 +850,6 @@ static enum dc_status apply_single_controller_ctx_to_hw(
                        (pipe_ctx->stream->signal == SIGNAL_TYPE_DVI_DUAL_LINK) 
?
                        true : false);
 
-       /* program blank color */
-       color_space_to_black_color(stream->public.output_color_space, 
&black_color);
-       pipe_ctx->tg->funcs->set_blank_color(
-                       pipe_ctx->tg,
-                       &black_color);
-
        if (!pipe_ctx_old->stream) {
                core_link_enable_stream(pipe_ctx);
 
@@ -871,6 +863,14 @@ static enum dc_status apply_single_controller_ctx_to_hw(
                                sizeof(struct scaler_data)) != 0)
                program_scaler(dc, pipe_ctx);
 
+       /*TODO: mst support - use total stream count*/
+       pipe_ctx->mi->funcs->allocate_mem_input(
+                                       pipe_ctx->mi,
+                                       stream->public.timing.h_total,
+                                       stream->public.timing.v_total,
+                                       stream->public.timing.pix_clk_khz,
+                                       context->target_count);
+
        return DC_OK;
 }
 
@@ -1335,7 +1335,7 @@ static enum dc_status apply_ctx_to_hw(
 
        /* Reset old context */
        /* look up the targets that have been removed since last commit */
-       for (i = 0; i < MAX_PIPES; i++) {
+       for (i = 0; i < context->res_ctx.pool->pipe_count; i++) {
                struct pipe_ctx *pipe_ctx_old =
                        &dc->current_context->res_ctx.pipe_ctx[i];
                struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i];
@@ -1362,7 +1362,7 @@ static enum dc_status apply_ctx_to_hw(
        /* Apply new context */
        dcb->funcs->set_scratch_critical_state(dcb, true);
 
-       for (i = 0; i < MAX_PIPES; i++) {
+       for (i = 0; i < context->res_ctx.pool->pipe_count; i++) {
                struct pipe_ctx *pipe_ctx_old =
                                        
&dc->current_context->res_ctx.pipe_ctx[i];
                struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i];
@@ -1390,7 +1390,7 @@ static enum dc_status apply_ctx_to_hw(
                > dc->current_context->bw_results.dispclk_khz)
                set_display_clock(context);
 
-       for (i = 0; i < MAX_PIPES; i++) {
+       for (i = 0; i < context->res_ctx.pool->pipe_count; i++) {
                struct pipe_ctx *pipe_ctx_old =
                                        
&dc->current_context->res_ctx.pipe_ctx[i];
                struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i];
@@ -1428,7 +1428,7 @@ static enum dc_status apply_ctx_to_hw(
         * find first available pipe with audio, setup audio wall DTO per 
topology
         * instead of per pipe.
         */
-       for (i = 0; i < MAX_PIPES; i++) {
+       for (i = 0; i < context->res_ctx.pool->pipe_count; i++) {
                if (context->res_ctx.pipe_ctx[i].audio != NULL) {
                        struct audio_output audio_output;
                        struct pipe_ctx *pipe_ctx = 
&context->res_ctx.pipe_ctx[i];
-- 
2.10.1

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

Reply via email to