9
0
Fork 0

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>
This commit is contained in:
Sascha Hauer 2013-12-12 15:46:52 +01:00
parent 5b58f68d5a
commit ec3ba30258
1 changed files with 8 additions and 1 deletions

View File

@ -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;
}