diff -Naur linux-2.4.26/drivers/video/Config.in linux-2.4.26_console/drivers/video/Config.in
--- linux-2.4.26/drivers/video/Config.in	2004-02-18 13:36:31.000000000 +0000
+++ linux-2.4.26_console/drivers/video/Config.in	2004-06-14 18:52:49.000000000 +0000
@@ -147,6 +147,9 @@
 	 if [ "$CONFIG_FB_ATY" != "n" ]; then
 	    bool '    Mach64 GX support (EXPERIMENTAL)' CONFIG_FB_ATY_GX
 	    bool '    Mach64 CT/VT/GT/LT (incl. 3D RAGE) support' CONFIG_FB_ATY_CT
+			if [ "$CONFIG_FB_ATY_CT" = "y" ]; then
+				bool '      Sony Vaio C1VE 1024x480 LCD support' CONFIG_FB_ATY_CT_VAIO_LCD
+			fi
             if [ "$ARCH" = "i386" -a "$CONFIG_FB_ATY_CT" != "n" ]; then
               bool '    Mach64 generic LCD monitor support (EXPERIMENTAL)' CONFIG_FB_ATY_GENERIC_LCD
             fi
diff -Naur linux-2.4.26/drivers/video/aty/atyfb_base.c linux-2.4.26_console/drivers/video/aty/atyfb_base.c
--- linux-2.4.26/drivers/video/aty/atyfb_base.c	2004-02-18 13:36:31.000000000 +0000
+++ linux-2.4.26_console/drivers/video/aty/atyfb_base.c	2004-06-14 19:22:35.000000000 +0000
@@ -377,6 +377,7 @@
 
     /* 3D RAGE Mobility */
     { 0x4c4d, 0x4c4d, 0x00, 0x00, m64n_mob_p,   230,  83, 125, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_MOBIL_BUS | M64F_EXTRA_BRIGHT},
+    { 0x4c52, 0x4c52, 0x00, 0x00, m64n_mob_p,   230,  40, 125, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_MOBIL_BUS | M64F_MAGIC_POSTDIV | M64F_SDRAM_MAGIC_PLL | M64F_XL_DLL },
     { 0x4c4e, 0x4c4e, 0x00, 0x00, m64n_mob_a,   230,  83, 125, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_MOBIL_BUS | M64F_EXTRA_BRIGHT},
 #endif /* CONFIG_FB_ATY_CT */
 };
@@ -455,7 +456,7 @@
 
 #endif /* defined(CONFIG_PPC) */
 
-#if defined(CONFIG_PMAC_PBOOK) || defined(CONFIG_PMAC_BACKLIGHT) || defined (CONFIG_FB_ATY_GENERIC_LCD)
+#if defined(CONFIG_PMAC_PBOOK) || defined(CONFIG_PMAC_BACKLIGHT) || defined (CONFIG_FB_ATY_GENERIC_LCD) || defined(CONFIG_FB_ATY_CT_VAIO_LCD)
 static void aty_st_lcd(int index, u32 val, const struct fb_info_aty *info)
 {
     unsigned long temp;
@@ -477,7 +478,7 @@
     /* read the register value */
     return aty_ld_le32(LCD_DATA, info);
 }
-#endif /* CONFIG_PMAC_PBOOK || CONFIG_PMAC_BACKLIGHT || CONFIG_FB_ATY_GENERIC_LCD*/
+#endif /* CONFIG_PMAC_PBOOK || CONFIG_PMAC_BACKLIGHT || CONFIG_FB_ATY_GENERIC_LCD || CONFIG_FB_ATY_CT_VAIO_LCD*/
 
 /* ------------------------------------------------------------------------- */
 
@@ -1984,6 +1985,9 @@
 #if defined(CONFIG_PPC)
     int sense;
 #endif
+#if defined(CONFIG_FB_ATY_CT_VAIO_LCD)
+	u32 pm, hs;
+#endif
     u32 monitors_enabled;
 
     info->aty_cmap_regs = (struct aty_cmap_regs *)(info->ati_regbase+0xc0);
@@ -2352,6 +2356,35 @@
         var = default_var;
 #endif /* !__sparc__ */
 #endif /* !CONFIG_PPC */
+#if defined(CONFIG_FB_ATY_CT_VAIO_LCD)
+       /* Power Management */
+       pm=aty_ld_lcd(POWER_MANAGEMENT, info);
+       pm=(pm & ~PWR_MGT_MODE_MASK) | PWR_MGT_MODE_PCI;
+       pm|=PWR_MGT_ON;
+       aty_st_lcd(POWER_MANAGEMENT, pm, info);
+       udelay(10);
+
+       /* OVR_WID_LEFT_RIGHT */
+       hs=aty_ld_le32(OVR_WID_LEFT_RIGHT,info);
+       hs &= ~0x003F003F;
+       aty_st_le32(OVR_WID_LEFT_RIGHT, hs, info);
+       udelay(10);
+
+       /* CONFIG_PANEL */
+       hs=aty_ld_lcd(CONFIG_PANEL,info);
+       hs|=DONT_SHADOW_HEND ;
+       aty_st_lcd(CONFIG_PANEL, hs, info);
+       udelay(10);
+
+#if defined(DEBUG)
+       printk("LCD_INDEX CONFIG_PANEL LCD_GEN_CTRL POWER_MANAGEMENT\n"
+       "%08x  %08x     %08x     %08x\n",
+       aty_ld_le32(LCD_INDEX, info),
+       aty_ld_lcd(CONFIG_PANEL, info),
+       aty_ld_lcd(LCD_GEN_CTRL, info),
+       aty_ld_lcd(POWER_MANAGEMENT, info),
+#endif /* DEBUG */
+#endif /* CONFIG_FB_ATY_CT_VAIO_LCD */
 #endif /* !MODULE */
     if (noaccel)
         var.accel_flags &= ~FB_ACCELF_TEXT;
@@ -3207,6 +3240,23 @@
     /*
      *  Blank the display.
      */
+#if defined(CONFIG_FB_ATY_CT_VAIO_LCD)
+static int set_backlight_enable(int on, struct fb_info_aty *info)
+{
+       unsigned int reg = aty_ld_lcd(POWER_MANAGEMENT, info);
+       if(on) {
+               reg=(reg & ~SUSPEND_NOW) | PWR_BLON;
+       } else {
+               reg=(reg & ~PWR_BLON) | SUSPEND_NOW;
+       }
+       aty_st_lcd(POWER_MANAGEMENT, reg, info);
+       udelay(10);
+#ifdef DEBUG
+               printk(KERN_INFO "set_backlight_enable(%i): %08x\n", on, aty_ld_lcd(POWER_MANAGEMENT, info) );
+#endif
+       return 0;
+}
+#endif /* CONFIG_FB_ATY_CT_VAIO_LCD */
 
 static void atyfbcon_blank(int blank, struct fb_info *fb)
 {
@@ -3218,6 +3268,9 @@
         set_backlight_enable(0);
 #endif /* CONFIG_PMAC_BACKLIGHT */
 
+#if defined(CONFIG_FB_ATY_CT_VAIO_LCD)
+       set_backlight_enable(!blank, info);
+#endif /* CONFIG_FB_ATY_CT_VAIO_LCD */
     gen_cntl = aty_ld_8(CRTC_GEN_CNTL, info);
     if (blank > 0)
         switch (blank-1) {
diff -Naur linux-2.4.26/drivers/video/aty/mach64_ct.c linux-2.4.26_console/drivers/video/aty/mach64_ct.c
--- linux-2.4.26/drivers/video/aty/mach64_ct.c	2003-11-28 18:26:21.000000000 +0000
+++ linux-2.4.26_console/drivers/video/aty/mach64_ct.c	2004-06-14 19:50:05.000000000 +0000
@@ -374,10 +374,14 @@
 	/* original: pll_gen_cntl = 0x84 */
         pll_gen_cntl = 0x8C;
 
+#if defined(CONFIG_FB_ATY_CT_VAIO_LCD)
+     	pll_ext_cntl = xpost_div;
+#else
     if (M64_HAS(MAGIC_POSTDIV))
         pll_ext_cntl = 0;
     else
        	pll_ext_cntl = xpost_div;
+#endif
 
     if (info->mclk_per == info->xclk_per)
         pll_gen_cntl |= xpost_div<<4; /* mclk == xclk */
diff -Naur linux-2.4.26/drivers/video/modedb.c linux-2.4.26_console/drivers/video/modedb.c
--- linux-2.4.26/drivers/video/modedb.c	2003-06-13 14:51:37.000000000 +0000
+++ linux-2.4.26_console/drivers/video/modedb.c	2004-06-14 20:06:15.000000000 +0000
@@ -43,6 +43,13 @@
 #define DEFAULT_MODEDB_INDEX	0
 
 static struct fb_videomode modedb[] __initdata = {
+#if defined(CONFIG_FB_ATY_CT_VAIO_LCD)
+    {
+    /* 1024x480 @ 65 Hz */
+    NULL, 65, 1024, 480, 25203, 24, 24, 1, 17, 144, 4,
+    0, FB_VMODE_NONINTERLACED
+    },
+#endif /* CONFIG_FB_ATY_CT_VAIO_LCD */
     {
 	/* 640x400 @ 70 Hz, 31.5 kHz hsync */
 	NULL, 70, 640, 400, 39721, 40, 24, 39, 9, 96, 2,

