diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-12-12 15:46:52 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-12-20 09:35:38 +0100 |
commit | ec3ba3025870548d80c689c56d97182077464d32 (patch) | |
tree | 0f071fdbfcdcf432084974d13211e67eafd87f8b /drivers/video | |
parent | 5b58f68d5a0e335e226c617d67cdd5cb0210cbb9 (diff) | |
download | barebox-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/video')
-rw-r--r-- | drivers/video/imx-ipu-fb.c | 9 |
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; } |