diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2699-drm-amd-display-function-renaming-for-hubbub.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2699-drm-amd-display-function-renaming-for-hubbub.patch | 315 |
1 files changed, 315 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2699-drm-amd-display-function-renaming-for-hubbub.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2699-drm-amd-display-function-renaming-for-hubbub.patch new file mode 100644 index 00000000..cdf92fa7 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2699-drm-amd-display-function-renaming-for-hubbub.patch @@ -0,0 +1,315 @@ +From 379e3f9fb241881cbceabea45dca79379f74cca4 Mon Sep 17 00:00:00 2001 +From: Yue Hin Lau <Yuehin.Lau@amd.com> +Date: Tue, 24 Oct 2017 15:16:38 -0400 +Subject: [PATCH 2699/4131] drm/amd/display: function renaming for hubbub + +following the naming convention with correct prefix + +Signed-off-by: Yue Hin Lau <Yuehin.Lau@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + .../gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c | 16 +++---- + .../gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h | 9 ++-- + .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 55 +++++++++++++--------- + 3 files changed, 43 insertions(+), 37 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c +index f60e90c..b1c9ba2 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c +@@ -75,7 +75,7 @@ void hubbub1_wm_read_state(struct hubbub *hubbub, + s->dram_clk_chanage = REG_READ(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D); + } + +-void verify_allow_pstate_change_high( ++bool hubbub1_verify_allow_pstate_change_high( + struct hubbub *hubbub) + { + /* pstate latency is ~20us so if we wait over 40us and pstate allow +@@ -89,7 +89,6 @@ void verify_allow_pstate_change_high( + static unsigned int pstate_wait_expected_timeout_us = 40; + static unsigned int max_sampled_pstate_wait_us; /* data collection */ + static bool forced_pstate_allow; /* help with revert wa */ +- static bool should_log_hw_state; /* prevent hw state log by default */ + + unsigned int debug_index = 0x7; + unsigned int debug_data; +@@ -140,7 +139,7 @@ void verify_allow_pstate_change_high( + "pstate took longer than expected ~%dus\n", + i); + +- return; ++ return false; + } + if (max_sampled_pstate_wait_us < i) + max_sampled_pstate_wait_us = i; +@@ -156,14 +155,11 @@ void verify_allow_pstate_change_high( + DCHUBBUB_ARB_ALLOW_PSTATE_CHANGE_FORCE_ENABLE, 1); + forced_pstate_allow = true; + +- if (should_log_hw_state) { +- dcn10_log_hw_state(hubbub->ctx->dc); +- } +- + dm_logger_write(hubbub->ctx->logger, LOG_WARNING, + "pstate TEST_DEBUG_DATA: 0x%X\n", + debug_data); +- BREAK_TO_DEBUGGER(); ++ ++ return true; + } + + static uint32_t convert_and_clamp( +@@ -182,7 +178,7 @@ static uint32_t convert_and_clamp( + } + + +-void program_watermarks( ++void hubbub1_program_watermarks( + struct hubbub *hubbub, + struct dcn_watermark_set *watermarks, + unsigned int refclk_mhz) +@@ -472,7 +468,7 @@ void hubbub1_update_dchub( + dh_data->dchub_info_valid = false; + } + +-void toggle_watermark_change_req(struct hubbub *hubbub) ++void hubbub1_toggle_watermark_change_req(struct hubbub *hubbub) + { + uint32_t watermark_change_req; + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h +index e9abb88..d5c9784 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h +@@ -191,18 +191,15 @@ void hubbub1_update_dchub( + struct hubbub *hubbub, + struct dchub_init_data *dh_data); + +-void dcn10_log_hw_state( +- struct dc *dc); +- +-void verify_allow_pstate_change_high( ++bool hubbub1_verify_allow_pstate_change_high( + struct hubbub *hubbub); + +-void program_watermarks( ++void hubbub1_program_watermarks( + struct hubbub *hubbub, + struct dcn_watermark_set *watermarks, + unsigned int refclk_mhz); + +-void toggle_watermark_change_req( ++void hubbub1_toggle_watermark_change_req( + struct hubbub *hubbub); + + void hubbub1_wm_read_state(struct hubbub *hubbub, +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 ced6c41..e2dc834 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 +@@ -544,6 +544,19 @@ static void reset_back_end_for_pipe( + pipe_ctx->pipe_idx, pipe_ctx->stream_res.tg->inst); + } + ++void dcn10_verify_allow_pstate_change_high(struct dc *dc) ++{ ++ static bool should_log_hw_state; /* prevent hw state log by default */ ++ ++ if (hubbub1_verify_allow_pstate_change_high(dc->res_pool->hubbub)) { ++ if (should_log_hw_state) { ++ dcn10_log_hw_state(dc); ++ } ++ ++ BREAK_TO_DEBUGGER(); ++ } ++} ++ + /* trigger HW to start disconnect plane from stream on the next vsync */ + static void plane_atomic_disconnect(struct dc *dc, + int fe_idx) +@@ -571,10 +584,10 @@ static void plane_atomic_disconnect(struct dc *dc, + return; + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + hubp->funcs->dcc_control(hubp, false, false); + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + + mpc->funcs->remove(mpc, &(dc->res_pool->opps[opp_id]->mpc_tree), + dc->res_pool->opps[opp_id]->inst, fe_idx); +@@ -602,7 +615,7 @@ static void plane_atomic_disable(struct dc *dc, + hubp->funcs->set_blank(hubp, true); + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + + REG_UPDATE(HUBP_CLK_CNTL[fe_idx], + HUBP_CLOCK_ENABLE, 0); +@@ -614,7 +627,7 @@ static void plane_atomic_disable(struct dc *dc, + OPP_PIPE_CLOCK_EN, 0); + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + static void reset_front_end( +@@ -638,7 +651,7 @@ static void reset_front_end( + tg->funcs->unlock(tg); + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + + if (tg->ctx->dce_environment != DCE_ENV_FPGA_MAXIMUS) + REG_WAIT(OTG_GLOBAL_SYNC_STATUS[tg->inst], +@@ -670,7 +683,7 @@ static void dcn10_power_down_fe(struct dc *dc, int fe_idx) + "Power gated front end %d\n", fe_idx); + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + static void dcn10_init_hw(struct dc *dc) +@@ -1243,7 +1256,7 @@ static void dcn10_pipe_control_lock( + return; + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + + if (lock) + pipe->stream_res.tg->funcs->lock(pipe->stream_res.tg); +@@ -1251,7 +1264,7 @@ static void dcn10_pipe_control_lock( + pipe->stream_res.tg->funcs->unlock(pipe->stream_res.tg); + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + static bool wait_for_reset_trigger_to_occur( +@@ -1475,7 +1488,7 @@ static void dcn10_power_on_fe( + struct dce_hwseq *hws = dc->hwseq; + + if (dc->debug.sanity_checks) { +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + power_on_plane(dc->hwseq, +@@ -1527,7 +1540,7 @@ static void dcn10_power_on_fe( + } + + if (dc->debug.sanity_checks) { +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + } + +@@ -1960,11 +1973,11 @@ static void program_all_pipe_in_tree( + * this OTG. this is done only one time. + */ + /* watermark is for all pipes */ +- program_watermarks(dc->res_pool->hubbub, &context->bw.dcn.watermarks, ref_clk_mhz); ++ hubbub1_program_watermarks(dc->res_pool->hubbub, &context->bw.dcn.watermarks, ref_clk_mhz); + + if (dc->debug.sanity_checks) { + /* pstate stuck check after watermark update */ +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + pipe_ctx->stream_res.tg->funcs->lock(pipe_ctx->stream_res.tg); +@@ -1995,7 +2008,7 @@ static void program_all_pipe_in_tree( + * DCHUBBUB_ARB_WATERMARK_CHANGE_REQUEST is owned by SMU we should have + * both driver and fw accessing same register + */ +- toggle_watermark_change_req(dc->res_pool->hubbub); ++ hubbub1_toggle_watermark_change_req(dc->res_pool->hubbub); + + update_dchubp_dpp(dc, pipe_ctx, context); + +@@ -2018,7 +2031,7 @@ static void program_all_pipe_in_tree( + + if (dc->debug.sanity_checks) { + /* pstate stuck check after each pipe is programmed */ +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + if (pipe_ctx->bottom_pipe != NULL && pipe_ctx->bottom_pipe != pipe_ctx) +@@ -2085,7 +2098,7 @@ static void dcn10_apply_ctx_for_surface( + int i, be_idx; + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + + be_idx = -1; + for (i = 0; i < dc->res_pool->pipe_count; i++) { +@@ -2168,7 +2181,7 @@ static void dcn10_apply_ctx_for_surface( + hubp->funcs->hubp_disconnect(hubp); + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + + old_pipe_ctx->top_pipe = NULL; + old_pipe_ctx->bottom_pipe = NULL; +@@ -2246,7 +2259,7 @@ static void dcn10_apply_ctx_for_surface( + ); + + if (dc->debug.sanity_checks) +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + static void dcn10_set_bandwidth( +@@ -2260,7 +2273,7 @@ static void dcn10_set_bandwidth( + struct pp_smu_funcs_rv *pp_smu = dc->res_pool->pp_smu; + + if (dc->debug.sanity_checks) { +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + if (IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment)) +@@ -2316,7 +2329,7 @@ static void dcn10_set_bandwidth( + dcn10_pplib_apply_display_requirements(dc, context); + + if (dc->debug.sanity_checks) { +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + /* need to fix this function. not doing the right thing here */ +@@ -2441,7 +2454,7 @@ static void dcn10_wait_for_mpcc_disconnect( + int i; + + if (dc->debug.sanity_checks) { +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + if (!pipe_ctx->stream_res.opp) +@@ -2459,7 +2472,7 @@ static void dcn10_wait_for_mpcc_disconnect( + } + + if (dc->debug.sanity_checks) { +- verify_allow_pstate_change_high(dc->res_pool->hubbub); ++ dcn10_verify_allow_pstate_change_high(dc); + } + + } +-- +2.7.4 + |