From: Piotr Maziarz <[email protected]> [WHY] The DCN10 post-unlock BLS path still emitted self-refresh suppression steps that are dead for this flow. Keeping them also left non-compliant BLS enums and documentation behind after the architecture cleanup.
[HOW] Removed the dead DCN10 BLS producer path, dropped the associated BLS enums, params, helpers, dispatcher cases, unit-test dumper cases, and updated the BLS documentation. Kept the shared dcn10_update_pending_status consumer because later DCN generations still use it. Signed-off-by: Piotr Maziarz <[email protected]> Signed-off-by: Fangzhi Zuo <[email protected]> Reviewed-by: Nicholas Kazlauskas <[email protected]> --- .../drm/amd/display/dc/core/dc_hw_sequencer.c | 65 ------------------- .../drm/amd/display/dc/hwss/hw_sequencer.h | 26 -------- 2 files changed, 91 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c index ccf5ed47ce62..21a62ca4c8dc 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c @@ -1160,25 +1160,6 @@ void hwss_build_post_unlock_full_sequence(struct dc *dc, if (hwseq && hwseq->wa.DEGVIDCN21) hwss_add_hubbub_apply_dedcn21_147_wa(&seq_state, dc->res_pool->hubbub); - /* Handle stutter underflow WA during MPO transitions */ - if (hwseq && hwseq->wa.disallow_self_refresh_during_multi_plane_transition && - dc->current_state->stream_status[0].plane_count == 1 && - context->stream_status[0].plane_count > 1) { - - hwss_add_hubbub_allow_self_refresh_control(&seq_state, dc->res_pool->hubbub, false); - - /* Get frame count for WA state tracking - this needs to be done immediately after the above call */ - if (dc->res_pool->timing_generators[0]->funcs->get_frame_count) { - hwss_add_tg_get_frame_count(&seq_state, dc->res_pool->timing_generators[0], - &hwseq->wa_state.disallow_self_refresh_during_multi_plane_transition_applied_on_frame); - } - - /* - * Set here rather than as a sequence step: the executor must not - * write to logical objects. - */ - hwseq->wa_state.disallow_self_refresh_during_multi_plane_transition_applied = true; - } } static uint32_t get_dcc_meta_propagation_delay(struct dc *dc, struct pipe_ctx *pipe_ctx) @@ -1924,12 +1905,6 @@ void hwss_execute_sequence(struct dc *dc, case HUBBUB_APPLY_DEDCN21_147_WA: hwss_hubbub_apply_dedcn21_147_wa(params); break; - case HUBBUB_ALLOW_SELF_REFRESH_CONTROL: - hwss_hubbub_allow_self_refresh_control(params); - break; - case TG_GET_FRAME_COUNT: - hwss_tg_get_frame_count(params); - break; case MPC_SET_DWB_MUX: hwss_mpc_set_dwb_mux(params); break; @@ -3684,22 +3659,6 @@ void hwss_hubbub_apply_dedcn21_147_wa(union block_sequence_params *params) hubbub->funcs->apply_DEDCN21_147_wa(hubbub); } -void hwss_hubbub_allow_self_refresh_control(union block_sequence_params *params) -{ - struct hubbub *hubbub = params->hubbub_allow_self_refresh_control_params.hubbub; - bool allow = params->hubbub_allow_self_refresh_control_params.allow; - - hubbub->funcs->allow_self_refresh_control(hubbub, allow); -} - -void hwss_tg_get_frame_count(union block_sequence_params *params) -{ - struct timing_generator *tg = params->tg_get_frame_count_params.tg; - unsigned int *frame_count = params->tg_get_frame_count_params.frame_count; - - *frame_count = tg->funcs->get_frame_count(tg); -} - void hwss_mpc_set_dwb_mux(union block_sequence_params *params) { struct mpc *mpc = params->mpc_set_dwb_mux_params.mpc; @@ -5879,30 +5838,6 @@ void hwss_add_hubbub_apply_dedcn21_147_wa(struct block_sequence_state *seq_state } } -void hwss_add_hubbub_allow_self_refresh_control(struct block_sequence_state *seq_state, - struct hubbub *hubbub, - bool allow) -{ - if (*seq_state->num_steps < MAX_HWSS_BLOCK_SEQUENCE_SIZE) { - seq_state->steps[*seq_state->num_steps].func = HUBBUB_ALLOW_SELF_REFRESH_CONTROL; - seq_state->steps[*seq_state->num_steps].params.hubbub_allow_self_refresh_control_params.hubbub = hubbub; - seq_state->steps[*seq_state->num_steps].params.hubbub_allow_self_refresh_control_params.allow = allow; - (*seq_state->num_steps)++; - } -} - -void hwss_add_tg_get_frame_count(struct block_sequence_state *seq_state, - struct timing_generator *tg, - unsigned int *frame_count) -{ - if (*seq_state->num_steps < MAX_HWSS_BLOCK_SEQUENCE_SIZE) { - seq_state->steps[*seq_state->num_steps].func = TG_GET_FRAME_COUNT; - seq_state->steps[*seq_state->num_steps].params.tg_get_frame_count_params.tg = tg; - seq_state->steps[*seq_state->num_steps].params.tg_get_frame_count_params.frame_count = frame_count; - (*seq_state->num_steps)++; - } -} - void hwss_add_cursor_lock(struct block_sequence_state *seq_state, struct dc *dc, struct pipe_ctx *pipe_ctx, diff --git a/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h b/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h index 9c32418be8f2..c0c098b5bcaa 100644 --- a/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h +++ b/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h @@ -525,16 +525,6 @@ struct hubbub_apply_dedcn21_147_wa_params { struct hubbub *hubbub; }; -struct hubbub_allow_self_refresh_control_params { - struct hubbub *hubbub; - bool allow; -}; - -struct tg_get_frame_count_params { - struct timing_generator *tg; - unsigned int *frame_count; -}; - struct mpc_set_dwb_mux_params { struct mpc *mpc; int dwb_id; @@ -1128,8 +1118,6 @@ union block_sequence_params { struct tg_wait_double_buffer_pending_params tg_wait_double_buffer_pending_params; struct update_force_pstate_params update_force_pstate_params; struct hubbub_apply_dedcn21_147_wa_params hubbub_apply_dedcn21_147_wa_params; - struct hubbub_allow_self_refresh_control_params hubbub_allow_self_refresh_control_params; - struct tg_get_frame_count_params tg_get_frame_count_params; struct mpc_set_dwb_mux_params mpc_set_dwb_mux_params; struct mpc_disable_dwb_mux_params mpc_disable_dwb_mux_params; struct mcif_wb_config_buf_params mcif_wb_config_buf_params; @@ -1301,8 +1289,6 @@ enum block_sequence_func { UPDATE_FORCE_PSTATE, PROGRAM_MALL_PIPE_CONFIG, HUBBUB_APPLY_DEDCN21_147_WA, - HUBBUB_ALLOW_SELF_REFRESH_CONTROL, - TG_GET_FRAME_COUNT, MPC_SET_DWB_MUX, MPC_DISABLE_DWB_MUX, MCIF_WB_CONFIG_BUF, @@ -2018,10 +2004,6 @@ void hwss_update_force_pstate(union block_sequence_params *params); void hwss_hubbub_apply_dedcn21_147_wa(union block_sequence_params *params); -void hwss_hubbub_allow_self_refresh_control(union block_sequence_params *params); - -void hwss_tg_get_frame_count(union block_sequence_params *params); - void hwss_mpc_set_dwb_mux(union block_sequence_params *params); void hwss_mpc_disable_dwb_mux(union block_sequence_params *params); @@ -2660,14 +2642,6 @@ void hwss_add_update_force_pstate(struct block_sequence_state *seq_state, void hwss_add_hubbub_apply_dedcn21_147_wa(struct block_sequence_state *seq_state, struct hubbub *hubbub); -void hwss_add_hubbub_allow_self_refresh_control(struct block_sequence_state *seq_state, - struct hubbub *hubbub, - bool allow); - -void hwss_add_tg_get_frame_count(struct block_sequence_state *seq_state, - struct timing_generator *tg, - unsigned int *frame_count); - void hwss_add_tg_set_dsc_config(struct block_sequence_state *seq_state, struct timing_generator *tg, struct dsc_optc_config *dsc_optc_cfg, -- 2.53.0
