--- drivers/video/s3c2410fb.c | 7 4 + 3 - 0 ! include/asm-arm/arch-s3c2410/fb.h | 1 1 + 0 - 0 ! 2 files changed, 5 insertions(+), 3 deletions(-) Index: linux-2.6/drivers/video/s3c2410fb.c =================================================================== --- linux-2.6.orig/drivers/video/s3c2410fb.c 2007-01-04 22:02:58.000000000 +0100 +++ linux-2.6/drivers/video/s3c2410fb.c 2007-01-04 22:15:17.000000000 +0100 @@ -461,7 +461,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 */ @@ -829,6 +829,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; @@ -889,10 +890,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 2007-01-04 22:02:59.000000000 +0100 +++ linux-2.6/include/asm-arm/arch-s3c2410/fb.h 2007-01-04 22:13:07.000000000 +0100 @@ -30,6 +30,7 @@ struct s3c2410fb_hw { struct s3c2410fb_mach_info { unsigned char fixed_syncs; /* do not update sync/border */ + unsigned int pixclock; /* LCD types */ int type;