Changeset 1754


Ignore:
Timestamp:
04/14/07 08:31:23 (6 years ago)
Author:
laforge
Message:
  • update truecolor patch to really only enable truecolor support
  • activate it in 'series'
Location:
trunk/src/target/kernel/patches
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/kernel/patches/s3c2410_fb-truecolor.patch

    r1558 r1754  
    1 Index: linux-2.6.20.4/drivers/video/s3c2410fb.c 
     1Patch to enable 24bit truecolor support (32bit per pixel) support to  
     2s3c2410fb.c 
     3Index: linux-2.6.20.4-moko/arch/arm/mach-s3c2410/mach-gta01.c 
    24=================================================================== 
    3 --- linux-2.6.20.4.orig/drivers/video/s3c2410fb.c       2007-03-28 23:12:49.000000000 +0200 
    4 +++ linux-2.6.20.4/drivers/video/s3c2410fb.c    2007-03-29 22:22:40.000000000 +0200 
    5 @@ -104,7 +104,7 @@ 
     5--- linux-2.6.20.4-moko.orig/arch/arm/mach-s3c2410/mach-gta01.c 2007-04-08 14:01:47.000000000 +0200 
     6+++ linux-2.6.20.4-moko/arch/arm/mach-s3c2410/mach-gta01.c      2007-04-08 14:02:09.000000000 +0200 
     7@@ -321,7 +321,7 @@ 
    68  
    7   
    8  static struct s3c2410fb_mach_info *mach_info; 
    9 - 
    10 +#define CONFIG_FB_S3C2410_DEBUG 
    11  /* Debugging stuff */ 
    12  #ifdef CONFIG_FB_S3C2410_DEBUG 
    13  static int debug          = 1; 
    14 @@ -315,8 +315,13 @@ 
     9        .bpp            = { 
     10                .min    = 1, 
     11-               .max    = 16, 
     12+               .max    = 32, 
     13                .defval = 16, 
     14        }, 
     15 }; 
     16Index: linux-2.6.20.4-moko/drivers/video/s3c2410fb.c 
     17=================================================================== 
     18--- linux-2.6.20.4-moko.orig/drivers/video/s3c2410fb.c  2007-04-08 12:59:39.000000000 +0200 
     19+++ linux-2.6.20.4-moko/drivers/video/s3c2410fb.c       2007-04-08 14:02:09.000000000 +0200 
     20@@ -263,6 +263,7 @@ 
     21                        } 
     22                        break; 
     23                case 24: 
     24+               case 32: 
     25                        /* 24 bpp 888 */ 
     26                        var->red.length         = 8; 
     27                        var->red.offset         = 16; 
     28@@ -315,6 +316,12 @@ 
    1529                        break; 
    1630                case 16: 
     
    2337+                       fbi->regs.lcdcon5 &= ~S3C2410_LCDCON5_HWSWP; 
    2438                        break; 
    25 - 
     39  
    2640                default: 
    27                         /* invalid pixel depth */ 
    28                         dev_err(fbi->dev, "invalid bpp %d\n", var->bits_per_pixel); 
    29 @@ -451,6 +456,8 @@ 
     41@@ -450,6 +457,8 @@ 
     42  
    3043        switch (var->bits_per_pixel) 
    3144        { 
     45+               case 32: 
     46+               case 24: 
    3247                case 16: 
    33 +               case 24: 
    34 +               case 32: 
    3548                        fbi->fb->fix.visual = FB_VISUAL_TRUECOLOR; 
    3649                        break; 
    37                 case 1: 
    38 @@ -514,11 +521,21 @@ 
    39   
     50@@ -515,9 +524,17 @@ 
    4051                if (regno < 16) { 
    4152                        u32 *pal = fbi->fb->pseudo_palette; 
    42 - 
    43 +#if 1 
     53  
    4454+                       switch (info->var.bits_per_pixel) { 
    4555+                       case 16: 
    46 +                               val = (red & 0xf800) | ((green & 0xfc00) >> 5) | ((blue ^ 0xf800) >> 11); 
    47 +                               break; 
    48 +                       case 32: 
    49 +                               red >>= 8; green >>= 8; blue >>= 8; transp >>= 8; 
    50 +                               val = (transp << 24) | (red << 16) | (green << 8) | blue; 
    51 +                               break; 
    52 +                       } 
    53 +#else 
    5456                        val  = chan_to_field(red,   &fbi->fb->var.red); 
    5557                        val |= chan_to_field(green, &fbi->fb->var.green); 
    5658                        val |= chan_to_field(blue,  &fbi->fb->var.blue); 
    57 - 
    58 +#endif 
     59+                       break; 
     60+                       case 32: 
     61+                       red >>= 8; green >>= 8; blue >>= 8; transp >>= 8; 
     62+                       val = (transp << 24) | (red << 16) | (green << 8) | blue; 
     63+                       break; 
     64+                       } 
     65  
    5966                        pal[regno] = val; 
    6067                } 
    61                 break; 
    62 @@ -710,9 +727,15 @@ 
    63         /* ensure temporary palette disabled */ 
    64         writel(0x00, S3C2410_TPAL); 
    65   
    66 +       /* johnny */ 
    67 +       mdelay(500); 
    68         /* Enable video by setting the ENVID bit to 1 */ 
    69         fbi->regs.lcdcon1 |= S3C2410_LCDCON1_ENVID; 
    70         writel(fbi->regs.lcdcon1, S3C2410_LCDCON1); 
    71 + 
    72 +       mdelay(500); 
    73 +       fbi->regs.lcdcon5 |= S3C2410_LCDCON5_PWREN; 
    74 +       writel(fbi->regs.lcdcon5, S3C2410_LCDCON5); 
    75         return 0; 
    76  } 
    77   
    78 @@ -839,7 +862,31 @@ 
    79         fbinfo->var.left_margin     = S3C2410_LCDCON3_GET_HFPD(mregs->lcdcon3) + 1; 
    80         fbinfo->var.right_margin    = S3C2410_LCDCON3_GET_HBPD(mregs->lcdcon3) + 1; 
    81         fbinfo->var.hsync_len       = S3C2410_LCDCON4_GET_HSPW(mregs->lcdcon4) + 1; 
    82 - 
    83 +// johnny 
    84 +       switch (fbinfo->var.bits_per_pixel) 
    85 +       { 
    86 +               case 16: 
    87 +                       fbinfo->var.red.offset          = 11; 
    88 +                       fbinfo->var.red.length          = 5; 
    89 +                       fbinfo->var.green.offset        = 5; 
    90 +                       fbinfo->var.green.length        = 6; 
    91 +                       fbinfo->var.blue.offset         = 0; 
    92 +                       fbinfo->var.blue.length         = 5; 
    93 +                       fbinfo->var.transp.offset       = 0; 
    94 +                       fbinfo->var.transp.length       = 0; 
    95 +                       break; 
    96 +               case 32: 
    97 +                       fbinfo->var.red.offset          = 16; 
    98 +                       fbinfo->var.red.length          = 8; 
    99 +                       fbinfo->var.green.offset        = 8; 
    100 +                       fbinfo->var.green.length        = 8; 
    101 +                       fbinfo->var.blue.offset         = 0; 
    102 +                       fbinfo->var.blue.length         = 8; 
    103 +                       fbinfo->var.transp.offset       = 24; 
    104 +                       fbinfo->var.transp.length       = 8; 
    105 +                       break; 
    106 +       } 
    107 +#if 0 
    108         fbinfo->var.red.offset      = 11; 
    109         fbinfo->var.green.offset    = 5; 
    110         fbinfo->var.blue.offset     = 0; 
    111 @@ -848,10 +895,11 @@ 
    112         fbinfo->var.green.length    = 6; 
    113         fbinfo->var.blue.length     = 5; 
    114         fbinfo->var.transp.length   = 0; 
    115 +#endif 
    116         fbinfo->fix.smem_len        =   mach_info->xres.max * 
    117                                         mach_info->yres.max * 
    118                                         mach_info->bpp.max / 8; 
    119 - 
    120 +       dprintk("fix.smem_len=%d\n",fbinfo->fix.smem_len); 
    121         for (i = 0; i < 256; i++) 
    122                 info->palette_buffer[i] = PALETTE_BUFF_CLEAR; 
    123   
    124 @@ -934,6 +982,11 @@ 
    125   
    126         local_irq_save(flags); 
    127   
    128 +       /* johnny */ 
    129 +       fbi->regs.lcdcon5 &= ~S3C2410_LCDCON5_PWREN; 
    130 +       writel(fbi->regs.lcdcon5, S3C2410_LCDCON5); 
    131 + 
    132 +       mdelay(2000); 
    133         fbi->regs.lcdcon1 &= ~S3C2410_LCDCON1_ENVID; 
    134         writel(fbi->regs.lcdcon1, S3C2410_LCDCON1); 
    135   
    136 @@ -997,8 +1050,6 @@ 
    137         clk_enable(info->clk); 
    138         msleep(1); 
    139   
    140 -       s3c2410fb_init_registers(info); 
    141 - 
    142         return 0; 
    143  } 
    144   
  • trunk/src/target/kernel/patches/series

    r1558 r1754  
    3939config-nr-tty-devices.patch 
    4040hxd8-core.patch 
    41 #s3c2410_fb-truecolor.patch 
     41s3c2410_fb-truecolor.patch 
Note: See TracChangeset for help on using the changeset viewer.