diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch new file mode 100644 index 00000000..5861a261 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch @@ -0,0 +1,72 @@ +From f7fe991adf2f0836967111d0db9291c84e13231f Mon Sep 17 00:00:00 2001 +From: Yongqiang Sun <yongqiang.sun@amd.com> +Date: Thu, 6 Apr 2017 16:23:14 -0400 +Subject: [PATCH 0340/4131] drm/amd/display: change mpo surface update check + condition. + +Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com> +Acked-by: Harry Wentland <Harry.Wentland@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc.c | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index 9a3507e..203cb9d 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -1024,7 +1024,8 @@ static unsigned int pixel_format_to_bpp(enum surface_pixel_format format) + } + + static enum surface_update_type get_plane_info_update_type( +- const struct dc_surface_update *u) ++ const struct dc_surface_update *u, ++ int surface_index) + { + struct dc_plane_info temp_plane_info = { { { { 0 } } } }; + +@@ -1049,7 +1050,11 @@ static enum surface_update_type get_plane_info_update_type( + + /* Special Validation parameters */ + temp_plane_info.format = u->plane_info->format; +- temp_plane_info.visible = u->plane_info->visible; ++ ++ if (surface_index == 0) ++ temp_plane_info.visible = u->plane_info->visible; ++ else ++ temp_plane_info.visible = u->surface->visible; + + if (memcmp(u->plane_info, &temp_plane_info, + sizeof(struct dc_plane_info)) != 0) +@@ -1111,7 +1116,8 @@ static enum surface_update_type get_scaling_info_update_type( + + static enum surface_update_type det_surface_update( + const struct core_dc *dc, +- const struct dc_surface_update *u) ++ const struct dc_surface_update *u, ++ int surface_index) + { + const struct validate_context *context = dc->current_context; + enum surface_update_type type = UPDATE_TYPE_FAST; +@@ -1120,7 +1126,7 @@ static enum surface_update_type det_surface_update( + if (!is_surface_in_context(context, u->surface)) + return UPDATE_TYPE_FULL; + +- type = get_plane_info_update_type(u); ++ type = get_plane_info_update_type(u, surface_index); + if (overall_type < type) + overall_type = type; + +@@ -1157,7 +1163,7 @@ enum surface_update_type dc_check_update_surfaces_for_stream( + + for (i = 0 ; i < surface_count; i++) { + enum surface_update_type type = +- det_surface_update(core_dc, &updates[i]); ++ det_surface_update(core_dc, &updates[i], i); + + if (type == UPDATE_TYPE_FULL) + return type; +-- +2.7.4 + |