.width          = 640,
                .height         = 480,
 
-               .xres           = 320,
-               .yres           = 240,
-               .left_margin    = 40,
-               .right_margin   = 20,
-               .hsync_len      = 88,
-               .upper_margin   = 30,
-               .lower_margin   = 32,
-               .vsync_len      = 3,
-
-               .bpp            = 4,
-
-               .lcdcon1        = 0x00000176,
-               .lcdcon5        = 0x00014b02,
-       },
-       {
-               .type           = S3C2410_LCDCON1_TFT,
-               .width          = 640,
-               .height         = 480,
-
+               .pixclock       = 33333,
                .xres           = 640,
                .yres           = 480,
                .bpp            = 4,
                .width          = 640,
                .height         = 480,
 
-               .xres           = 800,
-               .yres           = 600,
-               .bpp            = 4,
-               .left_margin    = 40,
-               .right_margin   = 20,
-               .hsync_len      = 88,
-               .upper_margin   = 30,
-               .lower_margin   = 32,
-               .vsync_len      = 3,
-
-               .lcdcon1        = 0x00000176,
-               .lcdcon5        = 0x00014b02,
-       },
-       {
-               .type           = S3C2410_LCDCON1_TFT,
-               .width          = 640,
-               .height         = 480,
-
-               .xres           = 320,
-               .yres           = 240,
-               .bpp            = 8,
-               .left_margin    = 40,
-               .right_margin   = 20,
-               .hsync_len      = 88,
-               .upper_margin   = 30,
-               .lower_margin   = 32,
-               .vsync_len      = 3,
-
-               .lcdcon1        = 0x00000176,
-               .lcdcon5        = 0x00014b02,
-       },
-       {
-               .type           = S3C2410_LCDCON1_TFT,
-               .width          = 640,
-               .height         = 480,
-
+               .pixclock       = 33333,
                .xres           = 640,
                .yres           = 480,
                .bpp            = 8,
                .width          = 640,
                .height         = 480,
 
-               .xres           = 800,
-               .yres           = 600,
-               .bpp            = 8,
-               .left_margin    = 40,
-               .right_margin   = 20,
-               .hsync_len      = 88,
-               .upper_margin   = 30,
-               .lower_margin   = 32,
-               .vsync_len      = 3,
-
-               .lcdcon1        = 0x00000176,
-               .lcdcon5        = 0x00014b02,
-       },
-       {
-               .type           = S3C2410_LCDCON1_TFT,
-               .width          = 640,
-               .height         = 480,
-
-               .xres           = 320,
-               .yres           = 240,
-               .bpp            = 16,
-               .left_margin    = 40,
-               .right_margin   = 20,
-               .hsync_len      = 88,
-               .upper_margin   = 30,
-               .lower_margin   = 32,
-               .vsync_len      = 3,
-
-               .lcdcon1        = 0x00000176,
-               .lcdcon5        = 0x00014b02,
-       },
-       {
-               .type           = S3C2410_LCDCON1_TFT,
-               .width          = 640,
-               .height         = 480,
-
+               .pixclock       = 33333,
                .xres           = 640,
                .yres           = 480,
                .bpp            = 16,
                .lower_margin   = 32,
                .vsync_len      = 3,
 
-               .lcdcon1        = 0x00000176,
-               .lcdcon5        = 0x00014b02,
-       },
-       {
-               .type           = S3C2410_LCDCON1_TFT,
-               .width          = 640,
-               .height         = 480,
-
-               .xres           = 800,
-               .yres           = 600,
-               .bpp            = 16,
-               .left_margin    = 40,
-               .right_margin   = 20,
-               .hsync_len      = 88,
-               .upper_margin   = 30,
-               .lower_margin   = 32,
-               .vsync_len      = 3,
-
                .lcdcon1        = 0x00000176,
                .lcdcon5        = 0x00014b02,
        },
 
        var->width = display->width;
 
        /* copy lcd settings */
+       var->pixclock = display->pixclock;
        var->left_margin = display->left_margin;
        var->right_margin = display->right_margin;
        var->upper_margin = display->upper_margin;
        unsigned wdly = (var->left_margin >> 4) - 1;
        unsigned wlh = (var->hsync_len >> 4) - 1;
 
-       dprintk("%s: var->xres  = %d\n", __FUNCTION__, var->xres);
-       dprintk("%s: var->yres  = %d\n", __FUNCTION__, var->yres);
-       dprintk("%s: var->bpp   = %d\n", __FUNCTION__, var->bits_per_pixel);
-
        if (type != S3C2410_LCDCON1_STN4)
                hs >>= 1;
 
        const struct s3c2410fb_info *fbi = info->par;
        const struct fb_var_screeninfo *var = &info->var;
 
-       dprintk("%s: var->xres  = %d\n", __FUNCTION__, var->xres);
-       dprintk("%s: var->yres  = %d\n", __FUNCTION__, var->yres);
-       dprintk("%s: var->bpp   = %d\n", __FUNCTION__, var->bits_per_pixel);
-
        regs->lcdcon1 &= ~S3C2410_LCDCON1_MODEMASK;
 
        switch (var->bits_per_pixel) {
        void __iomem *regs = fbi->io;
        int type = fbi->regs.lcdcon1 & S3C2410_LCDCON1_TFT;
        struct fb_var_screeninfo *var = &info->var;
+       int clkdiv = s3c2410fb_calc_pixclk(fbi, var->pixclock) / 2;
 
-       if (var->pixclock > 0) {
-               int clkdiv = s3c2410fb_calc_pixclk(fbi, var->pixclock);
-
-               if (type == S3C2410_LCDCON1_TFT) {
-                       clkdiv = (clkdiv / 2) - 1;
-                       if (clkdiv < 0)
-                               clkdiv = 0;
-               } else {
-                       clkdiv = (clkdiv / 2);
-                       if (clkdiv < 2)
-                               clkdiv = 2;
-               }
-
-               fbi->regs.lcdcon1 &= ~S3C2410_LCDCON1_CLKVAL(0x3ff);
-               fbi->regs.lcdcon1 |=  S3C2410_LCDCON1_CLKVAL(clkdiv);
-       }
+       dprintk("%s: var->xres  = %d\n", __FUNCTION__, var->xres);
+       dprintk("%s: var->yres  = %d\n", __FUNCTION__, var->yres);
+       dprintk("%s: var->bpp   = %d\n", __FUNCTION__, var->bits_per_pixel);
 
-       if (type == S3C2410_LCDCON1_TFT)
+       if (type == S3C2410_LCDCON1_TFT) {
                s3c2410fb_calculate_tft_lcd_regs(info, &fbi->regs);
-       else
+               --clkdiv;
+               if (clkdiv < 0)
+                       clkdiv = 0;
+       } else {
                s3c2410fb_calculate_stn_lcd_regs(info, &fbi->regs);
+               if (clkdiv < 2)
+                       clkdiv = 2;
+       }
+
+       fbi->regs.lcdcon1 &= ~S3C2410_LCDCON1_CLKVAL(0x3ff);
+       fbi->regs.lcdcon1 |=  S3C2410_LCDCON1_CLKVAL(clkdiv);
 
        /* write new registers */