aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/s3c2410fb.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/video/s3c2410fb.c b/drivers/video/s3c2410fb.c
index 108d49e6884e..2ecf7717491f 100644
--- a/drivers/video/s3c2410fb.c
+++ b/drivers/video/s3c2410fb.c
@@ -265,8 +265,8 @@ static int s3c2410fb_check_var(struct fb_var_screeninfo *var,
265 var->blue.length = 5; 265 var->blue.length = 5;
266 } 266 }
267 break; 267 break;
268 case 24: 268 case 32:
269 /* 24 bpp 888 */ 269 /* 24 bpp 888 and 8 dummy */
270 var->red.length = 8; 270 var->red.length = 8;
271 var->red.offset = 16; 271 var->red.offset = 16;
272 var->green.length = 8; 272 var->green.length = 8;
@@ -274,8 +274,6 @@ static int s3c2410fb_check_var(struct fb_var_screeninfo *var,
274 var->blue.length = 8; 274 var->blue.length = 8;
275 var->blue.offset = 0; 275 var->blue.offset = 0;
276 break; 276 break;
277
278
279 } 277 }
280 return 0; 278 return 0;
281} 279}
@@ -374,11 +372,21 @@ static void s3c2410fb_calculate_tft_lcd_regs(const struct fb_info *info,
374 break; 372 break;
375 case 8: 373 case 8:
376 regs->lcdcon1 |= S3C2410_LCDCON1_TFT8BPP; 374 regs->lcdcon1 |= S3C2410_LCDCON1_TFT8BPP;
375 regs->lcdcon5 |= S3C2410_LCDCON5_BSWP |
376 S3C2410_LCDCON5_FRM565;
377 regs->lcdcon5 &= ~S3C2410_LCDCON5_HWSWP;
377 break; 378 break;
378 case 16: 379 case 16:
379 regs->lcdcon1 |= S3C2410_LCDCON1_TFT16BPP; 380 regs->lcdcon1 |= S3C2410_LCDCON1_TFT16BPP;
381 regs->lcdcon5 &= ~S3C2410_LCDCON5_BSWP;
382 regs->lcdcon5 |= S3C2410_LCDCON5_HWSWP;
383 break;
384 case 32:
385 regs->lcdcon1 |= S3C2410_LCDCON1_TFT24BPP;
386 regs->lcdcon5 &= ~(S3C2410_LCDCON5_BSWP |
387 S3C2410_LCDCON5_HWSWP |
388 S3C2410_LCDCON5_BPP24BL);
380 break; 389 break;
381
382 default: 390 default:
383 /* invalid pixel depth */ 391 /* invalid pixel depth */
384 dev_err(fbi->dev, "invalid bpp %d\n", 392 dev_err(fbi->dev, "invalid bpp %d\n",
@@ -475,7 +483,9 @@ static int s3c2410fb_set_par(struct fb_info *info)
475 struct fb_var_screeninfo *var = &info->var; 483 struct fb_var_screeninfo *var = &info->var;
476 484
477 switch (var->bits_per_pixel) { 485 switch (var->bits_per_pixel) {
486 case 32:
478 case 16: 487 case 16:
488 case 12:
479 info->fix.visual = FB_VISUAL_TRUECOLOR; 489 info->fix.visual = FB_VISUAL_TRUECOLOR;
480 break; 490 break;
481 case 1: 491 case 1: