With current code when the framebuffer is register, screen_base is not set yet. So when we want to access framebuffer from mmap we get a pointer to 0x0 instead of getting the pointer to the framebuffer address. This patch fix this bug by allocating memory for framebuffer during probe just before registering framebuffer driver. Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx> --- drivers/video/stm.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/drivers/video/stm.c b/drivers/video/stm.c index f0abe4c..8a9acff 100644 --- a/drivers/video/stm.c +++ b/drivers/video/stm.c @@ -480,6 +480,7 @@ static int stmfb_probe(struct device_d *hw_dev) { struct imx_fb_videomode *pdata = hw_dev->platform_data; int ret; + unsigned size; /* just init */ fbi.info.priv = &fbi; @@ -497,6 +498,15 @@ static int stmfb_probe(struct device_d *hw_dev) fbi.info.yres = fbi.info.mode->yres; fbi.info.bits_per_pixel = 16; + size = calc_line_length(fbi.info.mode->xres, fbi.info.bits_per_pixel) * + fbi.info.mode->yres; + + ret = stmfb_memory_mmgt(&fbi.info, size); + if (ret != 0) { + dev_err(hw_dev, "Cannot allocate framebuffer memory\n"); + return ret; + } + ret = register_framebuffer(&fbi.info); if (ret != 0) { dev_err(hw_dev, "Failed to register framebuffer\n"); -- 1.7.0.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox