aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/s3c-fb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/s3c-fb.c')
-rw-r--r--drivers/video/s3c-fb.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
index b00c064beddf..77f576589a89 100644
--- a/drivers/video/s3c-fb.c
+++ b/drivers/video/s3c-fb.c
@@ -804,7 +804,8 @@ static void s3c_fb_free_memory(struct s3c_fb *sfb, struct s3c_fb_win *win)
804{ 804{
805 struct fb_info *fbi = win->fbinfo; 805 struct fb_info *fbi = win->fbinfo;
806 806
807 dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len), 807 if (fbi->screen_base)
808 dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
808 fbi->screen_base, fbi->fix.smem_start); 809 fbi->screen_base, fbi->fix.smem_start);
809} 810}
810 811
@@ -819,7 +820,8 @@ static void s3c_fb_release_win(struct s3c_fb *sfb, struct s3c_fb_win *win)
819{ 820{
820 if (win->fbinfo) { 821 if (win->fbinfo) {
821 unregister_framebuffer(win->fbinfo); 822 unregister_framebuffer(win->fbinfo);
822 fb_dealloc_cmap(&win->fbinfo->cmap); 823 if (win->fbinfo->cmap.len)
824 fb_dealloc_cmap(&win->fbinfo->cmap);
823 s3c_fb_free_memory(sfb, win); 825 s3c_fb_free_memory(sfb, win);
824 framebuffer_release(win->fbinfo); 826 framebuffer_release(win->fbinfo);
825 } 827 }
@@ -865,6 +867,7 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
865 WARN_ON(windata->win_mode.yres == 0); 867 WARN_ON(windata->win_mode.yres == 0);
866 868
867 win = fbinfo->par; 869 win = fbinfo->par;
870 *res = win;
868 var = &fbinfo->var; 871 var = &fbinfo->var;
869 win->variant = *variant; 872 win->variant = *variant;
870 win->fbinfo = fbinfo; 873 win->fbinfo = fbinfo;
@@ -939,7 +942,6 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
939 return ret; 942 return ret;
940 } 943 }
941 944
942 *res = win;
943 dev_info(sfb->dev, "window %d: fb %s\n", win_no, fbinfo->fix.id); 945 dev_info(sfb->dev, "window %d: fb %s\n", win_no, fbinfo->fix.id);
944 946
945 return 0; 947 return 0;