--- /dev/null
+From 2f410f88c0a1c7e19762918d2614f506a7b63a82 Mon Sep 17 00:00:00 2001
+From: Vincent Abriou <vincent.abriou@st.com>
+Date: Thu, 23 Mar 2017 15:44:52 +0100
+Subject: drm/sti: fix GDP size to support up to UHD resolution
+
+From: Vincent Abriou <vincent.abriou@st.com>
+
+commit 2f410f88c0a1c7e19762918d2614f506a7b63a82 upstream.
+
+On stih407-410 chip family the GDP layers are able to support up to UHD
+resolution (3840 x 2160).
+
+Signed-off-by: Vincent Abriou <vincent.abriou@st.com>
+Acked-by: Lee Jones <lee.jones@linaro.org>
+Tested-by: Lee Jones <lee.jones@linaro.org>
+Link: http://patchwork.freedesktop.org/patch/msgid/1490280292-30466-1-git-send-email-vincent.abriou@st.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/sti/sti_gdp.c | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+--- a/drivers/gpu/drm/sti/sti_gdp.c
++++ b/drivers/gpu/drm/sti/sti_gdp.c
+@@ -66,7 +66,9 @@ static struct gdp_format_to_str {
+ #define GAM_GDP_ALPHARANGE_255 BIT(5)
+ #define GAM_GDP_AGC_FULL_RANGE 0x00808080
+ #define GAM_GDP_PPT_IGNORE (BIT(1) | BIT(0))
+-#define GAM_GDP_SIZE_MAX 0x7FF
++
++#define GAM_GDP_SIZE_MAX_WIDTH 3840
++#define GAM_GDP_SIZE_MAX_HEIGHT 2160
+
+ #define GDP_NODE_NB_BANK 2
+ #define GDP_NODE_PER_FIELD 2
+@@ -633,8 +635,8 @@ static int sti_gdp_atomic_check(struct d
+ /* src_x are in 16.16 format */
+ src_x = state->src_x >> 16;
+ src_y = state->src_y >> 16;
+- src_w = clamp_val(state->src_w >> 16, 0, GAM_GDP_SIZE_MAX);
+- src_h = clamp_val(state->src_h >> 16, 0, GAM_GDP_SIZE_MAX);
++ src_w = clamp_val(state->src_w >> 16, 0, GAM_GDP_SIZE_MAX_WIDTH);
++ src_h = clamp_val(state->src_h >> 16, 0, GAM_GDP_SIZE_MAX_HEIGHT);
+
+ format = sti_gdp_fourcc2format(fb->pixel_format);
+ if (format == -1) {
+@@ -732,8 +734,8 @@ static void sti_gdp_atomic_update(struct
+ /* src_x are in 16.16 format */
+ src_x = state->src_x >> 16;
+ src_y = state->src_y >> 16;
+- src_w = clamp_val(state->src_w >> 16, 0, GAM_GDP_SIZE_MAX);
+- src_h = clamp_val(state->src_h >> 16, 0, GAM_GDP_SIZE_MAX);
++ src_w = clamp_val(state->src_w >> 16, 0, GAM_GDP_SIZE_MAX_WIDTH);
++ src_h = clamp_val(state->src_h >> 16, 0, GAM_GDP_SIZE_MAX_HEIGHT);
+
+ list = sti_gdp_get_free_nodes(gdp);
+ top_field = list->top_field;