diff options
| author | Vincent Abriou <vincent.abriou@st.com> | 2017-03-23 10:44:52 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-05-14 08:00:13 -0400 |
| commit | 898c6bbfc88de33ceabcee6545bda3bbe12d3e5c (patch) | |
| tree | 7551434bf58f770d27082f0c53ac27039dff3de3 /drivers/gpu | |
| parent | f5ca890f138d010e26a56e622316d4065add67f0 (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.c | 12 |
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; |
