diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2654-drm-amd-display-Added-disconnect-dchub.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2654-drm-amd-display-Added-disconnect-dchub.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2654-drm-amd-display-Added-disconnect-dchub.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2654-drm-amd-display-Added-disconnect-dchub.patch new file mode 100644 index 00000000..2cc0cae1 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2654-drm-amd-display-Added-disconnect-dchub.patch @@ -0,0 +1,83 @@ +From bdfe9ceca42e5eb21d0b5112c3c790d6f781e33e Mon Sep 17 00:00:00 2001 +From: Yongqiang Sun <yongqiang.sun@amd.com> +Date: Sat, 21 Oct 2017 15:52:40 -0400 +Subject: [PATCH 2654/4131] drm/amd/display: Added disconnect dchub. + +Add disable ttu interface to dcn10, when remove +mpc, disable ttu as well. + +Signed-off-by: Yongqiang Sun <yongqiang.sun@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> +--- + drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c | 9 +++++++++ + drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 4 ++++ + drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h | 2 ++ + 3 files changed, 15 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c +index a19fac7..584e82c 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c +@@ -56,6 +56,14 @@ void hubp1_set_blank(struct hubp *hubp, bool blank) + } + } + ++static void hubp1_disconnect(struct hubp *hubp) ++{ ++ struct dcn10_hubp *hubp1 = TO_DCN10_HUBP(hubp); ++ ++ REG_UPDATE(DCHUBP_CNTL, ++ HUBP_TTU_DISABLE, 1); ++} ++ + static void hubp1_set_hubp_blank_en(struct hubp *hubp, bool blank) + { + struct dcn10_hubp *hubp1 = TO_DCN10_HUBP(hubp); +@@ -933,6 +941,7 @@ static struct hubp_funcs dcn10_hubp_funcs = { + .set_hubp_blank_en = hubp1_set_hubp_blank_en, + .set_cursor_attributes = hubp1_cursor_set_attributes, + .set_cursor_position = hubp1_cursor_set_position, ++ .hubp_disconnect = hubp1_disconnect, + }; + + /*****************************************/ +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 77ba1bf..4ae0a94 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 +@@ -2019,6 +2019,7 @@ static void dcn10_apply_ctx_for_surface( + struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i]; + struct pipe_ctx *old_pipe_ctx = + &dc->current_state->res_ctx.pipe_ctx[i]; ++ struct hubp *hubp = dc->res_pool->hubps[i]; + + if (!pipe_ctx->plane_state && !old_pipe_ctx->plane_state) + continue; +@@ -2067,6 +2068,9 @@ static void dcn10_apply_ctx_for_surface( + "[debug_mpo: apply_ctx disconnect pending on mpcc %d]\n", + old_pipe_ctx->mpcc->inst);*/ + ++ if (hubp->funcs->hubp_disconnect) ++ hubp->funcs->hubp_disconnect(hubp); ++ + if (dc->debug.sanity_checks) + verify_allow_pstate_change_high(dc->hwseq); + +diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h +index 0d186be..3286585 100644 +--- a/drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h ++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h +@@ -100,6 +100,8 @@ struct hubp_funcs { + const struct dc_cursor_position *pos, + const struct dc_cursor_mi_param *param); + ++ void (*hubp_disconnect)(struct hubp *hubp); ++ + }; + + #endif +-- +2.7.4 + |