--- linux-2.6.8-rc2.orig/drivers/video/h1940fb.c	2004-07-27 01:05:35.000000000 +0200
+++ linux-2.6.8-rc2/drivers/video/h1940fb.c	2004-07-27 00:16:49.000000000 +0200
@@ -10,6 +10,9 @@
  *	    based on skeletonfb.c, sa1100fb.c
  *
  * ChangeLog
+ * 2004-07-27: Arnaud Patard <arnaud.patard@rtp-net.org>
+ * 	- code cleanup
+ * 	- added a forgotten return in h1940fb_init
  *
  * 2004-07-19: Herbert Pötzl <herbert@13thfloor.at>
  *	- code cleanup and extended debugging
@@ -133,7 +136,7 @@
 }
 
 /**
- *	h1940fb_blank - NOT a required function. Blanks the display.
+ *      xxxfb_blank - NOT a required function. Blanks the display.
  *	@blank_mode: the blank mode we want.
  *	@info: frame buffer structure that represents a single frame buffer
  *
@@ -323,6 +326,9 @@
 	info.fb.fix.smem_len	    = info.fb.var.xres * info.fb.var.yres *
 				      info.fb.var.bits_per_pixel / 8;
 
+	if (!request_mem_region(S3C2410_VA_LCD, SZ_1M, "LCD"))
+		return -EBUSY;
+
 	/* Initialize video memory */
 	ret = h1940fb_map_video_memory(&info);
 	if (ret) {
@@ -344,7 +350,9 @@
 	printk(KERN_INFO "fb%d: %s frame buffer device\n",
 		info.fb.node, info.fb.fix.id);
 
+	return 0;
 failed:
+	release_mem_region(S3C2410_VA_LCD, SZ_1M);
 	return ret;
 }
 
@@ -355,6 +363,7 @@
 static void __exit h1940fb_cleanup(void)
 {
 	unregister_framebuffer(&info.fb);
+	release_mem_region(S3C2410_VA_LCD, SZ_1M);
 }
 
 int __devinit h1940fb_setup(char *options)
