diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3060-drm-amd-display-put-back-front-end-initialization-se.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3060-drm-amd-display-put-back-front-end-initialization-se.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3060-drm-amd-display-put-back-front-end-initialization-se.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3060-drm-amd-display-put-back-front-end-initialization-se.patch new file mode 100644 index 00000000..d4a4d734 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3060-drm-amd-display-put-back-front-end-initialization-se.patch @@ -0,0 +1,59 @@ +From d3ad897d071068a1378270eac70e7c849ab90914 Mon Sep 17 00:00:00 2001 +From: Eric Yang <Eric.Yang2@amd.com> +Date: Mon, 24 Jun 2019 18:18:58 -0400 +Subject: [PATCH 3060/4256] drm/amd/display: put back front end initialization + sequence + +[Why] +Seamless boot optimization removed proper front end power off sequence. +In driver disable enable case, this causes driver to power gate hubp +and dpp while there is still memory fetching going on, this can cause +invalid memory requests to be generated which will hang data fabric. + +[How] +Put back proper front end power off sequence + +Signed-off-by: Eric Yang <Eric.Yang2@amd.com> +Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +Acked-by: Tony Cheng <Tony.Cheng@amd.com> +--- + .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 15 +-------------- + 1 file changed, 1 insertion(+), 14 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 15ac6de3fd30..2b5614bea6c3 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 +@@ -1194,16 +1194,7 @@ static void dcn10_init_hw(struct dc *dc) + * everything down. + */ + if (dcb->funcs->is_accelerated_mode(dcb) || dc->config.power_down_display_on_boot) { +- for (i = 0; i < dc->res_pool->pipe_count; i++) { +- struct hubp *hubp = dc->res_pool->hubps[i]; +- struct dpp *dpp = dc->res_pool->dpps[i]; +- +- hubp->funcs->hubp_init(hubp); +- dc->res_pool->opps[i]->mpc_tree_params.opp_id = dc->res_pool->opps[i]->inst; +- plane_atomic_power_down(dc, dpp, hubp); +- } +- +- apply_DEGVIDCN10_253_wa(dc); ++ dc->hwss.init_pipes(dc, dc->current_state); + } + + for (i = 0; i < dc->res_pool->audio_count; i++) { +@@ -1373,10 +1364,6 @@ static bool dcn10_set_input_transfer_func(struct pipe_ctx *pipe_ctx, + return result; + } + +- +- +- +- + static bool + dcn10_set_output_transfer_func(struct pipe_ctx *pipe_ctx, + const struct dc_stream_state *stream) +-- +2.17.1 + |