IMX6 24bit LVDS Color Scramble

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6 24bit LVDS Color Scramble

Jump to solution
3,641 Views
mike_sims
Contributor IV

I am trying to get a 24bit LVDS Display working, but am having problems....

I am running Linux 4.1.15 configured for Android (imx_v7_android_defconfig) on an IMX6DL.  We have all 5 LVDS Data Pairs connected (DATA[0:3] + CLK).   When I first configured the board, I accidentally configured the display for 18 bit using:

   bootargs -      video=mxcfb0:dev=ldb,bpp=32

   devicetree -    compatible = "fsl,mxc_sdc_fb";

                        disp_dev = "ldb";

                        interface_pix_fmt = "RGB666";

                        default_bpp = <32>;

This works fine, but results in dim colors and color banding.   Looking at the LVDS data, there is no data on LVDS0_DATA3, but looking at the image on the LCD, it appears as though the color bits are shifted down where what should be on R7 is on R5, R6 is on R4, etc..  Same with Blue and Green.   An image of this is attached as RGB555_ColorBar.

When I noticed the error of being in 18bit mode, I made a change to the device tree to change the line Interface_pix_fmt to read "RGB24".   I am not sure if other changes should have been made to put the LDB port in 24bit color mode, but this one change has resulted in a scrambling of the color and still no data on LVDS0_DATA3.  (See image RGB24_ColorBar).

Both attached images are of the same graphic, but it shows the effect of the change to RGB24.

Can someone please help me to understand what I am missing to make this display function as 24bit RGB over LDB.   Please let me know if more data is needed...

Regards,

Mike Sims

Labels (4)
1 Solution
2,436 Views
mike_sims
Contributor IV

I found the error of my ways....

Although I configured the INTERFACE_PIX_FMT to be RGB24, I neglected to change the DEFAULT_BPP.

Once this was changed to read:

   disp_dev = "ldb";

   interface_pix_fmt = "RGB24";

   default_bpp = <24>;

The display was formatted correctly and all colors are correct...  

Mental note to everyone else - Make sure your BPP matches the PIX_FMT!!!

Regards,

Mike Sims

View solution in original post

1 Reply
2,437 Views
mike_sims
Contributor IV

I found the error of my ways....

Although I configured the INTERFACE_PIX_FMT to be RGB24, I neglected to change the DEFAULT_BPP.

Once this was changed to read:

   disp_dev = "ldb";

   interface_pix_fmt = "RGB24";

   default_bpp = <24>;

The display was formatted correctly and all colors are correct...  

Mental note to everyone else - Make sure your BPP matches the PIX_FMT!!!

Regards,

Mike Sims