aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorVincent Abriou <vincent.abriou@st.com>2017-03-23 10:44:52 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-05-14 08:00:13 -0400
commit898c6bbfc88de33ceabcee6545bda3bbe12d3e5c (patch)
tree7551434bf58f770d27082f0c53ac27039dff3de3 /drivers/gpu
parentf5ca890f138d010e26a56e622316d4065add67f0 (diff)
drm/sti: fix GDP size to support up to UHD resolution
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>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/sti/sti_gdp.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
index 81df3097b545..7fd496f99385 100644
--- 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 {
66#define GAM_GDP_ALPHARANGE_255 BIT(5) 66#define GAM_GDP_ALPHARANGE_255 BIT(5)
67#define GAM_GDP_AGC_FULL_RANGE 0x00808080 67#define GAM_GDP_AGC_FULL_RANGE 0x00808080
68#define GAM_GDP_PPT_IGNORE (BIT(1) | BIT(0)) 68#define GAM_GDP_PPT_IGNORE (BIT(1) | BIT(0))
69#define GAM_GDP_SIZE_MAX 0x7FF 69
70#define GAM_GDP_SIZE_MAX_WIDTH 3840
71#define GAM_GDP_SIZE_MAX_HEIGHT 2160
70 72
71#define GDP_NODE_NB_BANK 2 73#define GDP_NODE_NB_BANK 2
72#define GDP_NODE_PER_FIELD 2 74#define GDP_NODE_PER_FIELD 2
@@ -633,8 +635,8 @@ static int sti_gdp_atomic_check(struct drm_plane *drm_plane,
633 /* src_x are in 16.16 format */ 635 /* src_x are in 16.16 format */
634 src_x = state->src_x >> 16; 636 src_x = state->src_x >> 16;
635 src_y = state->src_y >> 16; 637 src_y = state->src_y >> 16;
636 src_w = clamp_val(state->src_w >> 16, 0, GAM_GDP_SIZE_MAX); 638 src_w = clamp_val(state->src_w >> 16, 0, GAM_GDP_SIZE_MAX_WIDTH);
637 src_h = clamp_val(state->src_h >> 16, 0, GAM_GDP_SIZE_MAX); 639 src_h = clamp_val(state->src_h >> 16, 0, GAM_GDP_SIZE_MAX_HEIGHT);
638 640
639 format = sti_gdp_fourcc2format(fb->pixel_format); 641 format = sti_gdp_fourcc2format(fb->pixel_format);
640 if (format == -1) { 642 if (format == -1) {
@@ -732,8 +734,8 @@ static void sti_gdp_atomic_update(struct drm_plane *drm_plane,
732 /* src_x are in 16.16 format */ 734 /* src_x are in 16.16 format */
733 src_x = state->src_x >> 16; 735 src_x = state->src_x >> 16;
734 src_y = state->src_y >> 16; 736 src_y = state->src_y >> 16;
735 src_w = clamp_val(state->src_w >> 16, 0, GAM_GDP_SIZE_MAX); 737 src_w = clamp_val(state->src_w >> 16, 0, GAM_GDP_SIZE_MAX_WIDTH);
736 src_h = clamp_val(state->src_h >> 16, 0, GAM_GDP_SIZE_MAX); 738 src_h = clamp_val(state->src_h >> 16, 0, GAM_GDP_SIZE_MAX_HEIGHT);
737 739
738 list = sti_gdp_get_free_nodes(gdp); 740 list = sti_gdp_get_free_nodes(gdp);
739 top_field = list->top_field; 741 top_field = list->top_field;