diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2546-drm-amd-display-Return-UPDATE_TYPE_FULL-on-writeback.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2546-drm-amd-display-Return-UPDATE_TYPE_FULL-on-writeback.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2546-drm-amd-display-Return-UPDATE_TYPE_FULL-on-writeback.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2546-drm-amd-display-Return-UPDATE_TYPE_FULL-on-writeback.patch new file mode 100644 index 00000000..a678cbb5 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2546-drm-amd-display-Return-UPDATE_TYPE_FULL-on-writeback.patch @@ -0,0 +1,71 @@ +From 6cbe547bac2226cdc5051c4b516179e7f5985f13 Mon Sep 17 00:00:00 2001 +From: Charlene Liu <charlene.liu@amd.com> +Date: Wed, 8 May 2019 13:29:09 -0400 +Subject: [PATCH 2546/2940] drm/amd/display: Return UPDATE_TYPE_FULL on + writeback update + +Should do full update when display writeback is updated. + +Signed-off-by: Charlene Liu <charlene.liu@amd.com> +Reviewed-by: Duke Du <Duke.Du@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc.c | 5 +++++ + drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 4 +++- + drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h | 1 + + 3 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index 81fda0a93abb..1b90796cb878 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -1528,6 +1528,11 @@ static enum surface_update_type check_update_surfaces_for_stream( + + if (stream_update->dpms_off) + return UPDATE_TYPE_FULL; ++ ++#if defined(CONFIG_DRM_AMD_DC_DCN2_0) ++ if (stream_update->wb_update) ++ return UPDATE_TYPE_FULL; ++#endif + } + + for (i = 0 ; i < surface_count; i++) { +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +index 3787398f6d80..30a25e694da0 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +@@ -373,6 +373,7 @@ bool dc_stream_add_writeback(struct dc *dc, + { + bool isDrc = false; + int i = 0; ++ struct dwbc *dwb; + + if (stream == NULL) { + dm_error("DC: dc_stream is NULL!\n"); +@@ -391,7 +392,8 @@ bool dc_stream_add_writeback(struct dc *dc, + + wb_info->dwb_params.out_transfer_func = stream->out_transfer_func; + +- ++ dwb = dc->res_pool->dwbc[wb_info->dwb_pipe_inst]; ++ dwb->dwb_is_drc = false; + + /* recalculate and apply DML parameters */ + +diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h +index d4ae6eaaeb57..0ac21fa231c7 100644 +--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h ++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h +@@ -127,6 +127,7 @@ struct dwbc { + enum dc_transfer_func_predefined tf; + enum dc_color_space output_color_space; + bool dwb_is_efc_transition; ++ bool dwb_is_drc; + int wb_src_plane_inst;/*hubp, mpcc, inst*/ + bool update_privacymask; + uint32_t mask_id; +-- +2.17.1 + |