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
