From 8280a92acde6dfebe4ea2c6bf191347eaee3788d Mon Sep 17 00:00:00 2001 From: Andres Salomon Date: Tue, 31 Mar 2009 15:25:29 -0700 Subject: [PATCH] --- yaml --- r: 139279 b: refs/heads/master c: 909baf0092545e5c2082b045303e7a4b1d2a0522 h: refs/heads/master i: 139277: f97de8d1d7f52a77df89f9981004b23b6171ad38 139275: 846cad548f3f0fd19a2e5907577ae681404c7540 139271: 51b709af19c28b7108900b199ec8c15561213203 139263: 78d0ae86fae40371c332f42aaab3a939df3e8856 v: v3 --- [refs] | 2 +- trunk/drivers/video/amba-clcd.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 15ebeea31cdc..a872985598c1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e98d9b407c248ba1419bed0823488d3cc71a2c31 +refs/heads/master: 909baf0092545e5c2082b045303e7a4b1d2a0522 diff --git a/trunk/drivers/video/amba-clcd.c b/trunk/drivers/video/amba-clcd.c index 4e046fed1380..61050ab14128 100644 --- a/trunk/drivers/video/amba-clcd.c +++ b/trunk/drivers/video/amba-clcd.c @@ -408,7 +408,9 @@ static int clcdfb_register(struct clcd_fb *fb) /* * Allocate colourmap. */ - fb_alloc_cmap(&fb->fb.cmap, 256, 0); + ret = fb_alloc_cmap(&fb->fb.cmap, 256, 0); + if (ret) + goto unmap; /* * Ensure interrupts are disabled. @@ -426,6 +428,8 @@ static int clcdfb_register(struct clcd_fb *fb) printk(KERN_ERR "CLCD: cannot register framebuffer (%d)\n", ret); + fb_dealloc_cmap(&fb->fb.cmap); + unmap: iounmap(fb->regs); free_clk: clk_put(fb->clk); @@ -485,6 +489,8 @@ static int clcdfb_remove(struct amba_device *dev) clcdfb_disable(fb); unregister_framebuffer(&fb->fb); + if (fb->fb.cmap.len) + fb_dealloc_cmap(&fb->fb.cmap); iounmap(fb->regs); clk_put(fb->clk);