fbdev: ssd1307fb: fix memory address smem_start.
authorThomas Niederprüm <niederp@physik.uni-kl.de>
Tue, 31 Mar 2015 18:27:07 +0000 (20:27 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 27 May 2015 09:53:16 +0000 (12:53 +0300)
the smem_start pointer of the framebuffer info struct needs to hold the
physical address rather than the logical address. Right now the logical
address returned by kmalloc is stored. This patch converts this address
to a physical address and thus fixes a driver crash on mmaping the
framebuffer memory due to an access to the wrong memory address.

Signed-off-by: Thomas Niederprüm <niederp@physik.uni-kl.de>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/fbdev/ssd1307fb.c

index f7ed6d9016f7779a575626485990dc6accf3c7d4..61e0ce86650638ec32d8829b3ac9ede69526eb65 100644 (file)
@@ -515,7 +515,7 @@ static int ssd1307fb_probe(struct i2c_client *client,
        info->var.blue.offset = 0;
 
        info->screen_base = (u8 __force __iomem *)vmem;
-       info->fix.smem_start = (unsigned long)vmem;
+       info->fix.smem_start = __pa(vmem);
        info->fix.smem_len = vmem_size;
 
        fb_deferred_io_init(info);