summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2015-04-08 15:39:06 (GMT)
committerInki Dae <inki.dae@samsung.com>2015-04-13 02:48:20 (GMT)
commit68a2913407d8defac36f381e4877507a06e57c8e (patch)
tree2a88deddc2c1b742537f0eeff79be89967fa8614 /drivers
parent1c363c7cccf64128087002b0779986ad16aff6dc (diff)
downloadlinux-68a2913407d8defac36f381e4877507a06e57c8e.tar.xz
drm/exynos: Fix FIMD buffer size calculation
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@collabora.com> Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimd.c4
1 files 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 6d2858a..9819fa6 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -663,7 +663,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));
@@ -673,7 +673,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) |