diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-03-18 06:29:31 -0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-08-07 06:10:56 -0400 |
commit | f497d0153a6b53b4cfd004de5f10b14bf630d852 (patch) | |
tree | c541967f2612fb28402a4bab3609462856da3ac5 /drivers/video/imxfb.c | |
parent | 9b0e6db0da1ea433f38b8d952108746f3fc67304 (diff) |
imxfb: calculate bpix value from bits_per_pixel
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/video/imxfb.c')
-rw-r--r-- | drivers/video/imxfb.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c index 15a0ee6d8e23..a8c41cb60fff 100644 --- a/drivers/video/imxfb.c +++ b/drivers/video/imxfb.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <linux/math64.h> | 33 | #include <linux/math64.h> |
34 | 34 | ||
35 | #include <mach/imxfb.h> | 35 | #include <mach/imxfb.h> |
36 | #include <mach/hardware.h> | ||
36 | 37 | ||
37 | /* | 38 | /* |
38 | * Complain if VAR is out of range. | 39 | * Complain if VAR is out of range. |
@@ -530,8 +531,24 @@ static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *inf | |||
530 | lcd_clk / pcr); | 531 | lcd_clk / pcr); |
531 | } | 532 | } |
532 | 533 | ||
534 | switch (var->bits_per_pixel) { | ||
535 | case 32: | ||
536 | pcr |= PCR_BPIX_18; | ||
537 | break; | ||
538 | case 16: | ||
539 | default: | ||
540 | if (cpu_is_mx1()) | ||
541 | pcr |= PCR_BPIX_12; | ||
542 | else | ||
543 | pcr |= PCR_BPIX_16; | ||
544 | break; | ||
545 | case 8: | ||
546 | pcr |= PCR_BPIX_8; | ||
547 | break; | ||
548 | } | ||
549 | |||
533 | /* add sync polarities */ | 550 | /* add sync polarities */ |
534 | pcr |= fbi->pcr & ~0x3F; | 551 | pcr |= fbi->pcr & ~(0x3f | (7 << 25)); |
535 | 552 | ||
536 | writel(pcr, fbi->regs + LCDC_PCR); | 553 | writel(pcr, fbi->regs + LCDC_PCR); |
537 | writel(fbi->pwmr, fbi->regs + LCDC_PWMR); | 554 | writel(fbi->pwmr, fbi->regs + LCDC_PWMR); |