]> Pileus Git - ~andy/linux/blobdiff - drivers/video/bf537-lq035.c
Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck...
[~andy/linux] / drivers / video / bf537-lq035.c
index befbc80d11fca4d82c4718a7cc47b580003db3b9..7347aa1e5e4ac1e9957510b19889d1d3446784e0 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);