aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0340-drm-amd-display-change-mpo-surface-update-check-cond.patch b/meta-amd-bsp/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/meta-amd-bsp/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
+