drivers/video/bf537-lq035.c: use devm_ functions
authorDamien Cassou <damien.cassou@lifl.fr>
Tue, 31 Jul 2012 13:54:20 +0000 (15:54 +0200)
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Thu, 23 Aug 2012 12:59:58 +0000 (12:59 +0000)
The various devm_ functions allocate memory that is released when a driver
detaches.  This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.

Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
drivers/video/bf537-lq035.c

index befbc80..7347aa1 100644 (file)
@@ -760,18 +760,20 @@ static int __devinit bfin_lq035_probe(struct platform_device *pdev)
        bfin_lq035_fb.flags = FBINFO_DEFAULT;
 
 
-       bfin_lq035_fb.pseudo_palette = kzalloc(sizeof(u32) * 16, GFP_KERNEL);
+       bfin_lq035_fb.pseudo_palette = devm_kzalloc(&pdev->dev,
+                                                   sizeof(u32) * 16,
+                                                   GFP_KERNEL);
        if (bfin_lq035_fb.pseudo_palette == NULL) {
                pr_err("failed to allocate pseudo_palette\n");
                ret = -ENOMEM;
-               goto out_palette;
+               goto out_table;
        }
 
        if (fb_alloc_cmap(&bfin_lq035_fb.cmap, NBR_PALETTE, 0) < 0) {
                pr_err("failed to allocate colormap (%d entries)\n",
                        NBR_PALETTE);
                ret = -EFAULT;
-               goto out_cmap;
+               goto out_table;
        }
 
        if (register_framebuffer(&bfin_lq035_fb) < 0) {
@@ -804,9 +806,6 @@ out_lcd:
        unregister_framebuffer(&bfin_lq035_fb);
 out_reg:
        fb_dealloc_cmap(&bfin_lq035_fb.cmap);
-out_cmap:
-       kfree(bfin_lq035_fb.pseudo_palette);
-out_palette:
 out_table:
        dma_free_coherent(NULL, TOTAL_VIDEO_MEM_SIZE, fb_buffer, 0);
        fb_buffer = NULL;
@@ -834,7 +833,6 @@ static int __devexit bfin_lq035_remove(struct platform_device *pdev)
        free_dma(CH_PPI);
 
 
-       kfree(bfin_lq035_fb.pseudo_palette);
        fb_dealloc_cmap(&bfin_lq035_fb.cmap);