From: d.mueller@elsoft.ch
---
 drivers/video/s3c2410fb.c         |    9 	5 +	4 -	0 !
 include/asm-arm/arch-s3c2410/fb.h |    5 	3 +	2 -	0 !
 2 files changed, 8 insertions(+), 6 deletions(-)

Index: linux-2.6/drivers/video/s3c2410fb.c
===================================================================
--- linux-2.6.orig/drivers/video/s3c2410fb.c	2007-03-30 01:31:07.000000000 +0200
+++ linux-2.6/drivers/video/s3c2410fb.c	2007-03-30 01:31:20.000000000 +0200
@@ -130,7 +130,7 @@ static void s3c2410fb_set_lcdaddr(struct
 	saddr1  = fbi->fb->fix.smem_start >> 1;
 	saddr2  = fbi->fb->fix.smem_start;
 	saddr2 += (var->xres * var->yres * var->bits_per_pixel)/8;
-	saddr2>>= 1;
+	saddr2 >>= 1;
 
 	saddr3 =  S3C2410_OFFSIZE(0) | S3C2410_PAGEWIDTH((var->xres * var->bits_per_pixel / 16) & 0x3ff);
 
@@ -462,7 +462,7 @@ static int s3c2410fb_set_par(struct fb_i
 			 break;
 	}
 
-	fbi->fb->fix.line_length     = (var->width*var->bits_per_pixel)/8;
+	fbi->fb->fix.line_length     = (var->xres*var->bits_per_pixel)/8;
 
 	/* activate this new configuration */
 
@@ -799,6 +799,7 @@ static int __init s3c2410fb_probe(struct
 	fbinfo->var.yres	    = mach_info->yres.defval;
 	fbinfo->var.yres_virtual    = mach_info->yres.defval;
 	fbinfo->var.bits_per_pixel  = mach_info->bpp.defval;
+	fbinfo->var.pixclock        = mach_info->pixclock;
 
 	fbinfo->var.upper_margin    = S3C2410_LCDCON2_GET_VBPD(mregs->lcdcon2) + 1;
 	fbinfo->var.lower_margin    = S3C2410_LCDCON2_GET_VFPD(mregs->lcdcon2) + 1;
@@ -859,10 +860,10 @@ static int __init s3c2410fb_probe(struct
 	}
 	dprintk("got video memory\n");
 
-	ret = s3c2410fb_init_registers(info);
-
 	ret = s3c2410fb_check_var(&fbinfo->var, fbinfo);
 
+	ret = s3c2410fb_init_registers(info);
+
 	ret = register_framebuffer(fbinfo);
 	if (ret < 0) {
 		printk(KERN_ERR "Failed to register framebuffer device: %d\n", ret);
Index: linux-2.6/include/asm-arm/arch-s3c2410/fb.h
===================================================================
--- linux-2.6.orig/include/asm-arm/arch-s3c2410/fb.h	2006-12-21 00:08:25.000000000 +0100
+++ linux-2.6/include/asm-arm/arch-s3c2410/fb.h	2007-03-30 01:31:44.000000000 +0200
@@ -29,8 +29,6 @@ struct s3c2410fb_hw {
 };
 
 struct s3c2410fb_mach_info {
-	unsigned char	fixed_syncs;	/* do not update sync/border */
-
 	/* LCD types */
 	int		type;
 
@@ -59,6 +57,9 @@ struct s3c2410fb_mach_info {
 
 	/* lpc3600 control register */
 	unsigned long	lpcsel;
+
+	unsigned int	pixclock;
+	unsigned char	fixed_syncs;	/* do not update sync/border */
 };
 
 extern void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *);
