Commit adacb228d72b ("drm: Exynos: Respect framebuffer pitch for FIMD/Mixer") fixed the buffer size calculation by using the FB pitch value but later commit 26b9c2813ede1 ("drm/exynos: remove struct *_win_data abstraction on planes") added a regression so fix the buffer size calculation again. Tested on Chromebook Snow / Peach Pit. Fixes: 26b9c2813ede1 ("drm/exynos: remove struct *_win_data abstraction on planes") Signed-off-by: Daniel Stone <daniels@xxxxxxxxxxxxx> Tested-by: Javier Martinez Canillas <javier.martinez@xxxxxxxxxxxxxxx> --- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index 7964b278eefb..90111b87c963 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c @@ -662,7 +662,7 @@ static void fimd_win_commit(struct exynos_drm_crtc *crtc, unsigned int win) writel(val, ctx->regs + VIDWx_BUF_START(win, 0)); /* buffer end address */ - size = plane->pitch * plane->crtc_height * (plane->bpp >> 3); + size = plane->pitch * plane->crtc_height; val = (unsigned long)(dma_addr + size); writel(val, ctx->regs + VIDWx_BUF_END(win, 0)); @@ -672,7 +672,7 @@ static void fimd_win_commit(struct exynos_drm_crtc *crtc, unsigned int win) plane->crtc_width, plane->crtc_height); /* buffer size */ - buf_offsize = (plane->fb_width - plane->crtc_width) * (plane->bpp >> 3); + buf_offsize = plane->pitch - (plane->crtc_width * (plane->bpp >> 3)); line_size = plane->crtc_width * (plane->bpp >> 3); val = VIDW_BUF_SIZE_OFFSET(buf_offsize) | VIDW_BUF_SIZE_PAGEWIDTH(line_size) | -- 2.1.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel