r1754 - trunk/src/target/kernel/patches
laforge at sita.openmoko.org
laforge at sita.openmoko.org
Sat Apr 14 08:31:33 CEST 2007
Author: laforge
Date: 2007-04-14 08:31:23 +0200 (Sat, 14 Apr 2007)
New Revision: 1754
Modified:
trunk/src/target/kernel/patches/s3c2410_fb-truecolor.patch
trunk/src/target/kernel/patches/series
Log:
* update truecolor patch to really only enable truecolor support
* activate it in 'series'
Modified: trunk/src/target/kernel/patches/s3c2410_fb-truecolor.patch
===================================================================
--- trunk/src/target/kernel/patches/s3c2410_fb-truecolor.patch 2007-04-14 03:48:30 UTC (rev 1753)
+++ trunk/src/target/kernel/patches/s3c2410_fb-truecolor.patch 2007-04-14 06:31:23 UTC (rev 1754)
@@ -1,18 +1,32 @@
-Index: linux-2.6.20.4/drivers/video/s3c2410fb.c
+Patch to enable 24bit truecolor support (32bit per pixel) support to
+s3c2410fb.c
+Index: linux-2.6.20.4-moko/arch/arm/mach-s3c2410/mach-gta01.c
===================================================================
---- linux-2.6.20.4.orig/drivers/video/s3c2410fb.c 2007-03-28 23:12:49.000000000 +0200
-+++ linux-2.6.20.4/drivers/video/s3c2410fb.c 2007-03-29 22:22:40.000000000 +0200
-@@ -104,7 +104,7 @@
+--- linux-2.6.20.4-moko.orig/arch/arm/mach-s3c2410/mach-gta01.c 2007-04-08 14:01:47.000000000 +0200
++++ linux-2.6.20.4-moko/arch/arm/mach-s3c2410/mach-gta01.c 2007-04-08 14:02:09.000000000 +0200
+@@ -321,7 +321,7 @@
-
- static struct s3c2410fb_mach_info *mach_info;
--
-+#define CONFIG_FB_S3C2410_DEBUG
- /* Debugging stuff */
- #ifdef CONFIG_FB_S3C2410_DEBUG
- static int debug = 1;
-@@ -315,8 +315,13 @@
+ .bpp = {
+ .min = 1,
+- .max = 16,
++ .max = 32,
+ .defval = 16,
+ },
+ };
+Index: linux-2.6.20.4-moko/drivers/video/s3c2410fb.c
+===================================================================
+--- linux-2.6.20.4-moko.orig/drivers/video/s3c2410fb.c 2007-04-08 12:59:39.000000000 +0200
++++ linux-2.6.20.4-moko/drivers/video/s3c2410fb.c 2007-04-08 14:02:09.000000000 +0200
+@@ -263,6 +263,7 @@
+ }
break;
+ case 24:
++ case 32:
+ /* 24 bpp 888 */
+ var->red.length = 8;
+ var->red.offset = 16;
+@@ -315,6 +316,12 @@
+ break;
case 16:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_TFT16BPP;
+ fbi->regs.lcdcon5 |= S3C2410_LCDCON5_HWSWP;
@@ -22,123 +36,32 @@
+ fbi->regs.lcdcon1 |= S3C2410_LCDCON1_TFT24BPP;
+ fbi->regs.lcdcon5 &= ~S3C2410_LCDCON5_HWSWP;
break;
--
+
default:
- /* invalid pixel depth */
- dev_err(fbi->dev, "invalid bpp %d\n", var->bits_per_pixel);
-@@ -451,6 +456,8 @@
+@@ -450,6 +457,8 @@
+
switch (var->bits_per_pixel)
{
- case 16:
-+ case 24:
+ case 32:
++ case 24:
+ case 16:
fbi->fb->fix.visual = FB_VISUAL_TRUECOLOR;
break;
- case 1:
-@@ -514,11 +521,21 @@
-
+@@ -515,9 +524,17 @@
if (regno < 16) {
u32 *pal = fbi->fb->pseudo_palette;
--
-+#if 1
+
+ switch (info->var.bits_per_pixel) {
+ case 16:
-+ val = (red & 0xf800) | ((green & 0xfc00) >> 5) | ((blue ^ 0xf800) >> 11);
-+ break;
-+ case 32:
-+ red >>= 8; green >>= 8; blue >>= 8; transp >>= 8;
-+ val = (transp << 24) | (red << 16) | (green << 8) | blue;
-+ break;
-+ }
-+#else
val = chan_to_field(red, &fbi->fb->var.red);
val |= chan_to_field(green, &fbi->fb->var.green);
val |= chan_to_field(blue, &fbi->fb->var.blue);
--
-+#endif
- pal[regno] = val;
- }
- break;
-@@ -710,9 +727,15 @@
- /* ensure temporary palette disabled */
- writel(0x00, S3C2410_TPAL);
-
-+ /* johnny */
-+ mdelay(500);
- /* Enable video by setting the ENVID bit to 1 */
- fbi->regs.lcdcon1 |= S3C2410_LCDCON1_ENVID;
- writel(fbi->regs.lcdcon1, S3C2410_LCDCON1);
-+
-+ mdelay(500);
-+ fbi->regs.lcdcon5 |= S3C2410_LCDCON5_PWREN;
-+ writel(fbi->regs.lcdcon5, S3C2410_LCDCON5);
- return 0;
- }
-
-@@ -839,7 +862,31 @@
- fbinfo->var.left_margin = S3C2410_LCDCON3_GET_HFPD(mregs->lcdcon3) + 1;
- fbinfo->var.right_margin = S3C2410_LCDCON3_GET_HBPD(mregs->lcdcon3) + 1;
- fbinfo->var.hsync_len = S3C2410_LCDCON4_GET_HSPW(mregs->lcdcon4) + 1;
--
-+// johnny
-+ switch (fbinfo->var.bits_per_pixel)
-+ {
-+ case 16:
-+ fbinfo->var.red.offset = 11;
-+ fbinfo->var.red.length = 5;
-+ fbinfo->var.green.offset = 5;
-+ fbinfo->var.green.length = 6;
-+ fbinfo->var.blue.offset = 0;
-+ fbinfo->var.blue.length = 5;
-+ fbinfo->var.transp.offset = 0;
-+ fbinfo->var.transp.length = 0;
+ break;
-+ case 32:
-+ fbinfo->var.red.offset = 16;
-+ fbinfo->var.red.length = 8;
-+ fbinfo->var.green.offset = 8;
-+ fbinfo->var.green.length = 8;
-+ fbinfo->var.blue.offset = 0;
-+ fbinfo->var.blue.length = 8;
-+ fbinfo->var.transp.offset = 24;
-+ fbinfo->var.transp.length = 8;
++ case 32:
++ red >>= 8; green >>= 8; blue >>= 8; transp >>= 8;
++ val = (transp << 24) | (red << 16) | (green << 8) | blue;
+ break;
-+ }
-+#if 0
- fbinfo->var.red.offset = 11;
- fbinfo->var.green.offset = 5;
- fbinfo->var.blue.offset = 0;
-@@ -848,10 +895,11 @@
- fbinfo->var.green.length = 6;
- fbinfo->var.blue.length = 5;
- fbinfo->var.transp.length = 0;
-+#endif
- fbinfo->fix.smem_len = mach_info->xres.max *
- mach_info->yres.max *
- mach_info->bpp.max / 8;
--
-+ dprintk("fix.smem_len=%d\n",fbinfo->fix.smem_len);
- for (i = 0; i < 256; i++)
- info->palette_buffer[i] = PALETTE_BUFF_CLEAR;
++ }
-@@ -934,6 +982,11 @@
-
- local_irq_save(flags);
-
-+ /* johnny */
-+ fbi->regs.lcdcon5 &= ~S3C2410_LCDCON5_PWREN;
-+ writel(fbi->regs.lcdcon5, S3C2410_LCDCON5);
-+
-+ mdelay(2000);
- fbi->regs.lcdcon1 &= ~S3C2410_LCDCON1_ENVID;
- writel(fbi->regs.lcdcon1, S3C2410_LCDCON1);
-
-@@ -997,8 +1050,6 @@
- clk_enable(info->clk);
- msleep(1);
-
-- s3c2410fb_init_registers(info);
--
- return 0;
- }
-
+ pal[regno] = val;
+ }
Modified: trunk/src/target/kernel/patches/series
===================================================================
--- trunk/src/target/kernel/patches/series 2007-04-14 03:48:30 UTC (rev 1753)
+++ trunk/src/target/kernel/patches/series 2007-04-14 06:31:23 UTC (rev 1754)
@@ -38,4 +38,4 @@
s3c2410-qt2410-buttons.patch
config-nr-tty-devices.patch
hxd8-core.patch
-#s3c2410_fb-truecolor.patch
+s3c2410_fb-truecolor.patch
More information about the commitlog
mailing list