LVDS split mode with HDMI at 1080p60 simultaneously

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

LVDS split mode with HDMI at 1080p60 simultaneously

3,162 Views
jeromebolduc
Contributor III

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

8 Replies

1,738 Views
jeromebolduc
Contributor III

Hi Igor,

Your patch is not working. I still do get a problem when we enable HDMI 1080p60 at the same time using echo 0 > /sys/class/graphics/fb2/blank. I get 17.14Hz on LVDS instead of 59.99 that was previously measured by our FPGA. 59.99 / 17.14 = 3.5. Is it something related with the ldb driver?

Here is what I get with dmesg | grep ldb

[ 0.000000] ccm: ldb_di_sel already changed from reset value
[ 0.336908] ldb 2000000.aips-bus:ldb@020e0008: split mode
[ 0.337150] ldb 2000000.aips-bus:ldb@020e0008: split mode or dual mode, ignoring second output
[ 0.338504] mxc_sdc_fb fb@0: registered mxc display driver ldb
[ 0.584016] ldb 2000000.aips-bus:ldb@020e0008: LVDS channel1 is not online

Is that normal?

Are we at the IMX6Q limit if we want to output 2x 1080p60? 

Regards,

Jérôme

0 Kudos

1,738 Views
jeromebolduc
Contributor III

I managed to get it working by modifying the mxc_ipuv3_fb.c file in kernel when it searches for already used ipu/di. By doing this patch, I am able to get 1080p60 in split mode and HDMI 1080p60 simultaneously.

Jerome

1,738 Views
cwatkin
Contributor I

I'm trying to use LVDS in split mode, have the same device tree setup, and I am getting the same output in dmesg. Can you explain or post what you changed in mxc_ipuv3_fb.c ? Thanks very much.

0 Kudos

1,738 Views
jeromebolduc
Contributor III

Hi Igor,

I don't think I understand your answer. I thought that the LVDS split mode was managed by 2 DIs.

I changed

lvds-channel@0 crtc = "ipu1-di0";

lvds-channel@1 crtc = "ipu2-di0";

You suggest to point to same ipu and same di?

Regards,

Jérôme

0 Kudos

1,737 Views
igorpadykov
NXP Employee
NXP Employee

Hi Jerome

it is one DI, as described in i.MX6DQ Reference Manual

pastedImage_1.jpg

please look at patch provided on

imx6q and lvds. 

 

Best regards
igor

0 Kudos

1,737 Views
igorpadykov
NXP Employee
NXP Employee

Hi jerome

seems ipu1-di0, ipu1-di1 are for separate mode, as described in

Table 39-5. Channel Mapping i.MX6DQ Reference Manual
http://www.nxp.com/docs/en/reference-manual/IMX6DQRM.pdf

one can look at patch provided on

imx6q and lvds. 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,738 Views
jeromebolduc
Contributor III

Hi Igor,

Thanks for the proposed solution, I just changed the lvds0 to ipu1-di0 and lvds1 to ipu2-di0 and I have the same problem. I get 1080p60 using lvds split-mode but as soon as I do echo 0 > /sys/class/graphics/fb2/blank, I see that the frame rate of lvds falls from 60 to 17.14. Why would the frame rate on LVDS drops when fb2 is activated. Same problem when using split-mode at 720p60. No problem if I have single mode LVDS when fb2 is activated.

Jérôme

0 Kudos

1,737 Views
igorpadykov
NXP Employee
NXP Employee

Hi Jerome

regarding ipu1-di0, ipu2-di0, I think it should be the same

Best regards
igor

0 Kudos