From: Dmytro Laktyushkin <dmytro.laktyush...@amd.com>

Change-Id: If70a4124cf898c7561b8f3c8aa7960901f8b6dcc
Signed-off-by: Dmytro Laktyushkin <dmytro.laktyush...@amd.com>
Reviewed-by: Tony Cheng <tony.ch...@amd.com>
Acked-by: Harry Wentland <harry.wentl...@amd.com>
---
 .../amd/display/dc/dcn10/dcn10_hw_sequencer.c | 107 +++---------------
 .../gpu/drm/amd/display/dc/inc/hw_sequencer.h |   2 +-
 2 files changed, 19 insertions(+), 90 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c 
b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
index d78802e751c8..da82c6a2d4e0 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
@@ -2234,8 +2234,6 @@ static void dcn10_apply_ctx_for_surface(
        int i;
        struct timing_generator *tg;
        bool removed_pipe[4] = { false };
-       unsigned int ref_clk_mhz = dc->res_pool->ref_clock_inKhz/1000;
-       bool program_water_mark = false;
        struct pipe_ctx *top_pipe_to_program =
                        find_top_pipe_for_stream(dc, context, stream);
        DC_LOGGER_INIT(dc->ctx->logger);
@@ -2296,107 +2294,38 @@ static void dcn10_apply_ctx_for_surface(
        if (num_planes == 0)
                false_optc_underflow_wa(dc, stream, tg);
 
-       for (i = 0; i < dc->res_pool->pipe_count; i++) {
-               struct pipe_ctx *old_pipe_ctx =
-                               &dc->current_state->res_ctx.pipe_ctx[i];
-               struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i];
-
-               if (pipe_ctx->stream == stream &&
-                               pipe_ctx->plane_state &&
-                       pipe_ctx->plane_state->update_flags.bits.full_update)
-                       program_water_mark = true;
-
+       for (i = 0; i < dc->res_pool->pipe_count; i++)
                if (removed_pipe[i])
-                       dcn10_disable_plane(dc, old_pipe_ctx);
-       }
-
-       if (program_water_mark) {
-               if (dc->debug.sanity_checks) {
-                       /* pstate stuck check after watermark update */
-                       dcn10_verify_allow_pstate_change_high(dc);
-               }
-
-               /* watermark is for all pipes */
-               hubbub1_program_watermarks(dc->res_pool->hubbub,
-                               &context->bw.dcn.watermarks, ref_clk_mhz, true);
-
-               if (dc->hwseq->wa.DEGVIDCN10_254)
-                       hubbub1_wm_change_req_wa(dc->res_pool->hubbub);
+                       dcn10_disable_plane(dc, 
&dc->current_state->res_ctx.pipe_ctx[i]);
 
-               if (dc->debug.sanity_checks) {
-                       /* pstate stuck check after watermark update */
-                       dcn10_verify_allow_pstate_change_high(dc);
-               }
-       }
-/*     DC_LOG_BANDWIDTH_CALCS(dc->ctx->logger,
-                       "\n============== Watermark parameters ==============\n"
-                       "a.urgent_ns: %d \n"
-                       "a.cstate_enter_plus_exit: %d \n"
-                       "a.cstate_exit: %d \n"
-                       "a.pstate_change: %d \n"
-                       "a.pte_meta_urgent: %d \n"
-                       "b.urgent_ns: %d \n"
-                       "b.cstate_enter_plus_exit: %d \n"
-                       "b.cstate_exit: %d \n"
-                       "b.pstate_change: %d \n"
-                       "b.pte_meta_urgent: %d \n",
-                       context->bw.dcn.watermarks.a.urgent_ns,
-                       
context->bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns,
-                       
context->bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns,
-                       
context->bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns,
-                       context->bw.dcn.watermarks.a.pte_meta_urgent_ns,
-                       context->bw.dcn.watermarks.b.urgent_ns,
-                       
context->bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns,
-                       
context->bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns,
-                       
context->bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns,
-                       context->bw.dcn.watermarks.b.pte_meta_urgent_ns
-                       );
-       DC_LOG_BANDWIDTH_CALCS(dc->ctx->logger,
-                       "\nc.urgent_ns: %d \n"
-                       "c.cstate_enter_plus_exit: %d \n"
-                       "c.cstate_exit: %d \n"
-                       "c.pstate_change: %d \n"
-                       "c.pte_meta_urgent: %d \n"
-                       "d.urgent_ns: %d \n"
-                       "d.cstate_enter_plus_exit: %d \n"
-                       "d.cstate_exit: %d \n"
-                       "d.pstate_change: %d \n"
-                       "d.pte_meta_urgent: %d \n"
-                       
"========================================================\n",
-                       context->bw.dcn.watermarks.c.urgent_ns,
-                       
context->bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns,
-                       
context->bw.dcn.watermarks.c.cstate_pstate.cstate_exit_ns,
-                       
context->bw.dcn.watermarks.c.cstate_pstate.pstate_change_ns,
-                       context->bw.dcn.watermarks.c.pte_meta_urgent_ns,
-                       context->bw.dcn.watermarks.d.urgent_ns,
-                       
context->bw.dcn.watermarks.d.cstate_pstate.cstate_enter_plus_exit_ns,
-                       
context->bw.dcn.watermarks.d.cstate_pstate.cstate_exit_ns,
-                       
context->bw.dcn.watermarks.d.cstate_pstate.pstate_change_ns,
-                       context->bw.dcn.watermarks.d.pte_meta_urgent_ns
-                       );
-*/
+       if (dc->hwseq->wa.DEGVIDCN10_254)
+               hubbub1_wm_change_req_wa(dc->res_pool->hubbub);
 }
 
 static void dcn10_set_bandwidth(
                struct dc *dc,
                struct dc_state *context,
-               bool decrease_allowed)
+               bool safe_to_lower)
 {
        if (dc->debug.sanity_checks)
                dcn10_verify_allow_pstate_change_high(dc);
 
-       if (IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment))
-               return;
+       if (!IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment)) {
+               if (context->stream_count == 0)
+                       context->bw.dcn.clk.phyclk_khz = 0;
 
-       if (context->stream_count == 0)
-               context->bw.dcn.clk.phyclk_khz = 0;
+               dc->res_pool->dccg->funcs->update_clocks(
+                               dc->res_pool->dccg,
+                               &context->bw.dcn.clk,
+                               safe_to_lower);
 
-       dc->res_pool->dccg->funcs->update_clocks(
-                       dc->res_pool->dccg,
-                       &context->bw.dcn.clk,
-                       decrease_allowed);
+               dcn10_pplib_apply_display_requirements(dc, context);
+       }
 
-       dcn10_pplib_apply_display_requirements(dc, context);
+       hubbub1_program_watermarks(dc->res_pool->hubbub,
+                       &context->bw.dcn.watermarks,
+                       dc->res_pool->ref_clock_inKhz / 1000,
+                       true);
 
        if (dc->debug.sanity_checks)
                dcn10_verify_allow_pstate_change_high(dc);
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h 
b/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
index 1c94dae6bbde..2506601120af 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
@@ -172,7 +172,7 @@ struct hw_sequencer_funcs {
        void (*set_bandwidth)(
                        struct dc *dc,
                        struct dc_state *context,
-                       bool decrease_allowed);
+                       bool safe_to_lower);
 
        void (*set_drr)(struct pipe_ctx **pipe_ctx, int num_pipes,
                        int vmin, int vmax);
-- 
2.17.1

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

Reply via email to