drm/sti: GDP cropping fails when we remove 2 pixels horizontally
authorVincent Abriou <vincent.abriou@st.com>
Tue, 9 Feb 2016 16:08:56 +0000 (17:08 +0100)
committerVincent Abriou <vincent.abriou@st.com>
Fri, 26 Feb 2016 09:03:58 +0000 (10:03 +0100)
GDP source width should be equal to the destination width to get
rid of this issue.

Signed-off-by: Vincent Abriou <vincent.abriou@st.com>
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
drivers/gpu/drm/sti/sti_gdp.c

index 0a696add176852cb87bd956f6d34a6048df7d542..6c1a695a07e13bda411d3380ec31b26595069691 100644 (file)
@@ -471,10 +471,6 @@ static void sti_gdp_atomic_update(struct drm_plane *drm_plane,
        top_field->gam_gdp_pml += src_x * (bpp >> 3);
        top_field->gam_gdp_pml += src_y * fb->pitches[0];
 
-       /* input parameters */
-       top_field->gam_gdp_pmp = fb->pitches[0];
-       top_field->gam_gdp_size = src_h << 16 | src_w;
-
        /* output parameters (clamped / cropped) */
        dst_w = sti_gdp_get_dst(gdp->dev, dst_w, src_w);
        dst_h = sti_gdp_get_dst(gdp->dev, dst_h, src_h);
@@ -485,6 +481,11 @@ static void sti_gdp_atomic_update(struct drm_plane *drm_plane,
        top_field->gam_gdp_vpo = (ydo << 16) | xdo;
        top_field->gam_gdp_vps = (yds << 16) | xds;
 
+       /* input parameters */
+       src_w = dst_w;
+       top_field->gam_gdp_pmp = fb->pitches[0];
+       top_field->gam_gdp_size = src_h << 16 | src_w;
+
        /* Same content and chained together */
        memcpy(btm_field, top_field, sizeof(*btm_field));
        top_field->gam_gdp_nvn = list->btm_field_paddr;