From: Thomas Zimmermann <[email protected]>

[ Upstream commit a18b6e30ecd69096beda4a0c96d2570900c3879a ]

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: de2ba664c30f ("gpu: host1x: drm: Add memory manager and fb")
Cc: [email protected]
Cc: [email protected]
Cc: <[email protected]> # v3.10+
Signed-off-by: Thierry Reding <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/gpu/drm/tegra/fb.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index a688ecf08451..b054311f6869 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -222,7 +222,6 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
        struct drm_mode_fb_cmd2 cmd = { 0 };
        unsigned int bytes_per_pixel;
        struct drm_framebuffer *fb;
-       unsigned long offset;
        struct fb_info *info;
        struct tegra_bo *bo;
        size_t size;
@@ -268,9 +267,6 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
 
        drm_fb_helper_fill_info(info, helper, sizes);
 
-       offset = info->var.xoffset * bytes_per_pixel +
-                info->var.yoffset * fb->pitches[0];
-
        if (bo->pages) {
                bo->vaddr = vmap(bo->pages, bo->num_pages, VM_MAP,
                                 pgprot_writecombine(PAGE_KERNEL));
@@ -282,9 +278,9 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
        }
 
        drm->mode_config.fb_base = (resource_size_t)bo->iova;
-       info->screen_base = (void __iomem *)bo->vaddr + offset;
+       info->screen_base = (void __iomem *)bo->vaddr;
        info->screen_size = size;
-       info->fix.smem_start = (unsigned long)(bo->iova + offset);
+       info->fix.smem_start = (unsigned long)(bo->iova);
        info->fix.smem_len = size;
 
        return 0;
-- 
2.53.0

Reply via email to