diff options
Diffstat (limited to 'drivers/video/s3c2410fb.c')
-rw-r--r-- | drivers/video/s3c2410fb.c | 20 |
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: |