From 1e07abcc294b05f5d9a7daaf420ffb362c8dcd43 Mon Sep 17 00:00:00 2001
From: Pawel Osciak
Date: Tue, 10 Aug 2010 18:02:35 -0700
Subject: [PATCH] --- yaml --- r: 208492 b: refs/heads/master c:
cd7d7e0244955a4694d1e79e8c8a9bef163d6305 h: refs/heads/master v: v3
---
[refs] | 2 +-
trunk/drivers/video/s3c-fb.c | 8 +++++---
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/[refs] b/[refs]
index 7f0a2a62d892..1d57ce852f15 100644
--- a/[refs]
+++ b/[refs]
@@ -1,2 +1,2 @@
---
-refs/heads/master: bc2da1b6fb1a8af9a3226a4f5db3ce32a0a192c9
+refs/heads/master: cd7d7e0244955a4694d1e79e8c8a9bef163d6305
diff --git a/trunk/drivers/video/s3c-fb.c b/trunk/drivers/video/s3c-fb.c
index b00c064beddf..77f576589a89 100644
--- a/trunk/drivers/video/s3c-fb.c
+++ b/trunk/drivers/video/s3c-fb.c
@@ -804,7 +804,8 @@ static void s3c_fb_free_memory(struct s3c_fb *sfb, struct s3c_fb_win *win)
{
struct fb_info *fbi = win->fbinfo;
- dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
+ if (fbi->screen_base)
+ dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
fbi->screen_base, fbi->fix.smem_start);
}
@@ -819,7 +820,8 @@ static void s3c_fb_release_win(struct s3c_fb *sfb, struct s3c_fb_win *win)
{
if (win->fbinfo) {
unregister_framebuffer(win->fbinfo);
- fb_dealloc_cmap(&win->fbinfo->cmap);
+ if (win->fbinfo->cmap.len)
+ fb_dealloc_cmap(&win->fbinfo->cmap);
s3c_fb_free_memory(sfb, win);
framebuffer_release(win->fbinfo);
}
@@ -865,6 +867,7 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
WARN_ON(windata->win_mode.yres == 0);
win = fbinfo->par;
+ *res = win;
var = &fbinfo->var;
win->variant = *variant;
win->fbinfo = fbinfo;
@@ -939,7 +942,6 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
return ret;
}
- *res = win;
dev_info(sfb->dev, "window %d: fb %s\n", win_no, fbinfo->fix.id);
return 0;