This fixes the issue in which mm_lock mutex was attempted to be used without initializing previously. Thanks to the testers! - OMAP3430 SDP (Anand Gadiyar) - OMAP3530 EVM (Vaibhav Hiremath) - LogicPD's OMAP boards (Peter Brada) - Beagleboard Rev. C2 (Eric Witcher) Signed-off-by: Sergio Aguirre <saaguirre@xxxxxx> Tested-by: Vaibhav Hiremath <hvaibhav@xxxxxx> Tested-by: Anand Gadiyar <gadiyar@xxxxxx> Tested-by: Peter Barada <peterb@xxxxxxxxxxx> Tested-by: Eric Witcher <ewitcher@xxxxxxxxxxxxxx> --- drivers/video/omap/omapfb_main.c | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c index 125e605..60f9482 100644 --- a/drivers/video/omap/omapfb_main.c +++ b/drivers/video/omap/omapfb_main.c @@ -1503,12 +1503,21 @@ static int fbinfo_init(struct omapfb_device *fbdev, struct fb_info *info) var->rotate = def_rotate; var->bits_per_pixel = fbdev->panel->bpp; + r = register_framebuffer(info); + if (r != 0) { + dev_err(fbdev->dev, + "registering framebuffer failed\n"); + return r; + } + set_fb_var(info, var); set_fb_fix(info); r = fb_alloc_cmap(&info->cmap, 16, 0); - if (r != 0) + if (r != 0) { dev_err(fbdev->dev, "unable to allocate color map memory\n"); + unregister_framebuffer(info); + } return r; } @@ -1773,15 +1782,8 @@ static int omapfb_do_probe(struct platform_device *pdev, init_state++; vram = 0; - for (i = 0; i < fbdev->mem_desc.region_cnt; i++) { - r = register_framebuffer(fbdev->fb_info[i]); - if (r != 0) { - dev_err(fbdev->dev, - "registering framebuffer %d failed\n", i); - goto cleanup; - } + for (i = 0; i < fbdev->mem_desc.region_cnt; i++) vram += fbdev->mem_desc.region[i].size; - } fbdev->state = OMAPFB_ACTIVE; -- 1.6.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html