summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-12-12 15:46:52 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-12-20 09:35:38 +0100
commitec3ba3025870548d80c689c56d97182077464d32 (patch)
tree0f071fdbfcdcf432084974d13211e67eafd87f8b /drivers
parent5b58f68d5a0e335e226c617d67cdd5cb0210cbb9 (diff)
downloadbarebox-ec3ba3025870548d80c689c56d97182077464d32.tar.gz
barebox-ec3ba3025870548d80c689c56d97182077464d32.tar.xz
video: ipufb: Fix 24bit format and implement 32bit format
When requested 32bit formats the IPU generated a 24bit format instead. Implement real 32bit format (xxrrggbb) and let the IPU generate a 24bit format when requested. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/imx-ipu-fb.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/video/imx-ipu-fb.c b/drivers/video/imx-ipu-fb.c
index 717fc71289..858bde875c 100644
--- a/drivers/video/imx-ipu-fb.c
+++ b/drivers/video/imx-ipu-fb.c
@@ -91,6 +91,8 @@ enum pixel_fmt {
IPU_PIX_FMT_BGR666,
/* 3 bytes */
IPU_PIX_FMT_RGB24,
+ /* 3 bytes */
+ IPU_PIX_FMT_RGB32,
};
struct di_mapping {
@@ -560,6 +562,9 @@ static void ipu_ch_param_set_size(struct ipu_ch_param *p,
case IPU_PIX_FMT_RGB24:
ipu_cpmem_set_format_rgb(p, &def_rgb_24);
break;
+ case IPU_PIX_FMT_RGB32:
+ ipu_cpmem_set_format_rgb(p, &def_rgb_32);
+ break;
default:
break;
}
@@ -594,8 +599,10 @@ static u32 bpp_to_pixfmt(int bpp)
switch (bpp) {
case 16:
return IPU_PIX_FMT_RGB565;
- case 32:
+ case 24:
return IPU_PIX_FMT_RGB24;
+ case 32:
+ return IPU_PIX_FMT_RGB32;
default:
return 0;
}