The screen_buffer field in struct fb_info contains the kernel address
of the first byte of framebuffer memory. Do not add the display offset.
This offset only describes scrolling during scanout.

Signed-off-by: Thomas Zimmermann <[email protected]>
Fixes: 19c8b8343d9c ("drm/exynos: fixed overlay data updating.")
Tested-by: Marek Szyprowski <[email protected]>
Acked-by: Marek Szyprowski <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: <[email protected]> # v3.2+
---
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c 
b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index 637927818dfe..d283ded266d5 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -61,17 +61,13 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper 
*helper,
        struct fb_info *fbi = helper->info;
        struct drm_framebuffer *fb = helper->fb;
        unsigned int size = fb->width * fb->height * fb->format->cpp[0];
-       unsigned long offset;
 
        fbi->fbops = &exynos_drm_fb_ops;
 
        drm_fb_helper_fill_info(fbi, helper, sizes);
 
-       offset = fbi->var.xoffset * fb->format->cpp[0];
-       offset += fbi->var.yoffset * fb->pitches[0];
-
        fbi->flags |= FBINFO_VIRTFB;
-       fbi->screen_buffer = exynos_gem->kvaddr + offset;
+       fbi->screen_buffer = exynos_gem->kvaddr;
        fbi->screen_size = size;
        fbi->fix.smem_len = size;
 
-- 
2.54.0

Reply via email to