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:
parent
5b58f68d5a
commit
ec3ba30258
|
@ -91,6 +91,8 @@ enum pixel_fmt {
|
||||||
IPU_PIX_FMT_BGR666,
|
IPU_PIX_FMT_BGR666,
|
||||||
/* 3 bytes */
|
/* 3 bytes */
|
||||||
IPU_PIX_FMT_RGB24,
|
IPU_PIX_FMT_RGB24,
|
||||||
|
/* 3 bytes */
|
||||||
|
IPU_PIX_FMT_RGB32,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct di_mapping {
|
struct di_mapping {
|
||||||
|
@ -560,6 +562,9 @@ static void ipu_ch_param_set_size(struct ipu_ch_param *p,
|
||||||
case IPU_PIX_FMT_RGB24:
|
case IPU_PIX_FMT_RGB24:
|
||||||
ipu_cpmem_set_format_rgb(p, &def_rgb_24);
|
ipu_cpmem_set_format_rgb(p, &def_rgb_24);
|
||||||
break;
|
break;
|
||||||
|
case IPU_PIX_FMT_RGB32:
|
||||||
|
ipu_cpmem_set_format_rgb(p, &def_rgb_32);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -594,8 +599,10 @@ static u32 bpp_to_pixfmt(int bpp)
|
||||||
switch (bpp) {
|
switch (bpp) {
|
||||||
case 16:
|
case 16:
|
||||||
return IPU_PIX_FMT_RGB565;
|
return IPU_PIX_FMT_RGB565;
|
||||||
case 32:
|
case 24:
|
||||||
return IPU_PIX_FMT_RGB24;
|
return IPU_PIX_FMT_RGB24;
|
||||||
|
case 32:
|
||||||
|
return IPU_PIX_FMT_RGB32;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue