AnsweredAssumed Answered

LVDS split mode with HDMI at 1080p60 simultaneously

Question asked by jerome bolduc on Sep 1, 2017
Latest reply on Nov 20, 2018 by Chris Watkin

I am trying to get LVDS in split-mode with HDMI at 1080p60 simultaneously using the IMX6Q, using the VAR-SOM-MX6, without success.

I am using the following U-Boot variable:

video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 ; i2c dev 2; if i2c probe 0x38; then setenv bootargs ${bootargs} screen_alternate=yes

 

I am also using the following structure for the LDB in the imx6qdl-var-som-solocb-dt6cb-displays.dtsi file: 
&ldb {
    status = "okay";
    split-mode;

 

    lvds-channel@0 {
        fsl,data-mapping = "spwg";
        fsl,data-width = <24>;
        crtc = "ipu1-di0";
        primary;
        status = "okay";

 

        display-timings {
            native-mode = <&timing0>;
            timing0: hsd100pxn1 {
                clock-frequency = <148500000>;
                hactive = <1920>;
                vactive = <1080>;
                hback-porch = <104>;
                hfront-porch = <88>;
                vback-porch = <36>;
                vfront-porch = <4>;
                hsync-len = <88>;
                vsync-len = <5>;
            };
        };
    };

 

    lvds-channel@1 {
        fsl,data-mapping = "spwg";
        fsl,data-width = <24>;
        crtc = "ipu1-di1";
        status = "okay";

 

        display-timings {
            native-mode = <&timing1>;
            timing1: hsd100pxn1 {
                clock-frequency = <148500000>;
                hactive = <1920>;
                vactive = <1080>;
                hback-porch = <104>;
                hfront-porch = <88>;
                vback-porch = <36>;
                vfront-porch = <4>;
                hsync-len = <88>;
                vsync-len = <5>;
            };
        };
    };
};

I also change the hdmi_core instance to point to another ipu, like ipu2-di0.

This way I am able to see /dev/fb0 for LVDS amd /dev/fb2 for HDMI.

 

However, when I tried to start a gstreamer pipeline like this one to appear on the HDMI link :

gst-launch-1.0 videotestsrc ! imxv4l2sink device=/dev/video18

the output resolution on the LVDS channels goes from 1920x1080p60 to 1920x1080p17.14? Do you know why this is happening?
If I stop the command line and disable the fb2 y doing

echo 1 > /sys/class/graphics/fb2/blank and then

gst-launch-1.0 videotestsrc ! imxv4l2sink device=/dev/video16

- which is LVDS output - I then have a 1080p60 format.

 

Is there a problem using HDMI and split mode? Seems to have the same problem when using 720p60 instead of 1080p60. However, I do get 34.28Hz on LVDS (17.14x2) when the issue occurs.

 

I even tried 640x480p60 in LVDS split-mode with HDMI. THe HDMI input seem to work fine but the LVDS output is not stable, I can't get a stable format. No problem in single channel mode.

 

When using LVDS single mode with HDMI at 720p60, I am able to properly receive HDMI and LVDS at 720p60. 

 

Is there some hardware/bandwidth limitation when we are using LVDS split-mode?

 

The main purpose of all of these tests is to hack the IMX6 and point HDMI and LVDS channels to the same IPU in order to avoid memory bandwidth limitation caused by two independent frame buffers.

 

There are a lot of threads complaining about this issue but none of them received an answer.

 

Jérôme

 

 

 

Outcomes