AnsweredAssumed Answered

Inverted colors on LVDS split-mode 1920x1200, imx6q on Variscite DART-Board and Innolux G170J1-LE1 display

Question asked by Ralf Zeuka on Jan 29, 2016
Latest reply on Feb 15, 2016 by Ashley Sheng

Hello together,

 

I'd like to run a innolux display with a resolution of 1920x1200px. There is already a stable output. But the colors seems to be inverted.
black --> white

white --> black

red --> cyan

yellow --> blue

blue --> yellow

...

 

Is there a way to tell the video mode or the framebuffer to invert every pixel code? (not to change msb/lsb)

 

EDIT: The whole pixels can be inverted by changing two pins of the differential signal on a channel. In my case it was a hardware problem.

 

Best regards,

ralf

 

System:

Android: 5.0

Kernel:   3.10.35

 

Display:

http://www.data-modul.com/tl_files/dm/data/specification_12008329.pdf

 

Boot-command-line:

console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=24,if=RGB24,fbpix=GBR24 ldb=spl0 video=mxcfb1:dev=ldb,bpp=24,if=RGB24,fbpix=RGB24 ldb=spl1 video=mxcfb2:off arm_freq=1000 fbmem=24M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale no_console_suspend androidboot.batt_poweron=good_battery androidboot.console=ttymxc0 consoleblank=0 cma=384M androidboot.selinux=disabled androidboot.dm_verity=disable androidboot.serialno=1c1bb1d4df647283

 

Device-Tree:   

&ldb {

    status = "okay";

    split-mode;

 

    lvds-channel@0 {

        fsl,data-mapping = "spwg";

        fsl,data-width = <24>;    

     

    primary;

        status = "okay";

 

        display-timings {

            native-mode = <&timing0>;

            timing0: hsd100pxn1 {

                clock-frequency = <154130000>;

                hactive = <1920>;

                vactive = <1200>;

                hback-porch = <80>;

                hfront-porch = <80>;

                vback-porch = <17>;

                vfront-porch = <18>;

                hsync-len = <13>;

                vsync-len = <13>;

                hsync-active = <0>;

                vsync-active = <0>;

                de-active    = <1>;

            };

        };

    };

 

    lvds-channel@1 {

        fsl,data-mapping = "spwg";

        fsl,data-width = <24>;

     

        status = "okay";

 

        display-timings {

            native-mode = <&timing1>;

            timing1: hsd100pxn1 {

 

                clock-frequency = <154130000>;

                hactive = <1920>;

                vactive = <1200>;

                hback-porch = <80>;

                hfront-porch = <80>;

                vback-porch = <17>;

                vfront-porch = <18>;

                hsync-len = <13>;

                vsync-len = <13>;

                hsync-active = <0>;

                vsync-active = <0>;

                de-active    = <1>;

            };

        };

    };

};

 

&ldb {

    lvds-channel@0 {

        crtc = "ipu1-di0";

    };

 

    lvds-channel@1 {

        crtc = "ipu2-di0";

    };

};

Outcomes