I am not sure what the difference between fix_pix_fmt and bpp is. For example, in imx6, the LCD hardware interface is:
DISP0_DAT0:DISP0_DAT5 - B0-B5
DISP0_DAT6:DISP0_DAT11 - G0-G5
DISP0_DAT12:DISP0_DAT17 - R0-R5
so the fix_pix_fmt is RGB666, but what is the bpp is? bpp = 18 or bpp = 16?
As I understand, RGB666 needs at least 18bits to display, but in freescale ipuv3 driver file mxc_ipuv3_fb.c there is no bpp = 18.