imxfb: calculate bpix value from bits_per_pixel
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Родитель
9b0e6db0da
Коммит
f497d0153a
|
@ -13,7 +13,8 @@
|
|||
#define PCR_BPIX_4 (2 << 25)
|
||||
#define PCR_BPIX_8 (3 << 25)
|
||||
#define PCR_BPIX_12 (4 << 25)
|
||||
#define PCR_BPIX_16 (4 << 25)
|
||||
#define PCR_BPIX_16 (5 << 25)
|
||||
#define PCR_BPIX_18 (6 << 25)
|
||||
#define PCR_PIXPOL (1 << 24)
|
||||
#define PCR_FLMPOL (1 << 23)
|
||||
#define PCR_LPPOL (1 << 22)
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <linux/math64.h>
|
||||
|
||||
#include <mach/imxfb.h>
|
||||
#include <mach/hardware.h>
|
||||
|
||||
/*
|
||||
* 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
|
|||
lcd_clk / pcr);
|
||||
}
|
||||
|
||||
switch (var->bits_per_pixel) {
|
||||
case 32:
|
||||
pcr |= PCR_BPIX_18;
|
||||
break;
|
||||
case 16:
|
||||
default:
|
||||
if (cpu_is_mx1())
|
||||
pcr |= PCR_BPIX_12;
|
||||
else
|
||||
pcr |= PCR_BPIX_16;
|
||||
break;
|
||||
case 8:
|
||||
pcr |= PCR_BPIX_8;
|
||||
break;
|
||||
}
|
||||
|
||||
/* add sync polarities */
|
||||
pcr |= fbi->pcr & ~0x3F;
|
||||
pcr |= fbi->pcr & ~(0x3f | (7 << 25));
|
||||
|
||||
writel(pcr, fbi->regs + LCDC_PCR);
|
||||
writel(fbi->pwmr, fbi->regs + LCDC_PWMR);
|
||||
|
|
Загрузка…
Ссылка в новой задаче