iMX8QM-MEK HDMI Output 2400x900@60 Problem

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

iMX8QM-MEK HDMI Output 2400x900@60 Problem

8,211 Views
nevozade
Contributor IV

Hello,

I have built a yocto distro for fsl-imx-xwayland and iMX8QM-MEK machine with v5.4.70 kernel version as below.

yocto_imx8qm-mek.jpeg

I wish to output from 3 panels: 2 of them are LVDS outputs and 1 of them is HDMI output, all of them at the same time.

2 x panels have physical resolution 1920x720@60 and connected to iMX8QM-MEK eboard via LVDS lines with dual mode as represented figure below.

iMX8QM-MEK_LVDS_connection.png

1 x panel has physical resolution 2400x900@60 and connected to iMX8QM-MEK eboard via HDMI port.

* When I use the attached DTS file imx8qm-mek-hdmi.dts.txt, 2400x900@60 panel works fine which is connected to HDMI port. But there are no outputs on LVDS panels.

* When I use the attached DTS files imx8qm-mek-jdi-wuxga-lvds1-panel.dts.txt and imx8qm-mek-jdi-wuxga-lvds1-panel.dtsi, both 1920x720 LVDS panels work fine but there is no output on 2400x900@60 panel which is connected to HDMI port. If I unplug the HDMI connection from 2400x900@60 panel and plug a standard 1280x720@60 PC monitor via HDMI port, there is an output (works fine) on that PC monitor.

On the other hand, I have set the u-boot bootargs variable to adjust the HDMI output setting as below.

 

bootargs=root=/dev/mmcblk0p1 rootwait rw video=mxcdi0fb:RGB24,2400x900M@60,hdmi video=mxcdi1fb:RGB666,XGA,di0_primary ldb=di1 ip=none

 

How can I output from all of the panels (2 x LVDS 1920x720@60 and 1 x HDMI 2400x900@60) at the same time. What should be the rootcause of that problem ?

Note: DTS files are attached.

Regards,

0 Kudos
32 Replies

2,212 Views
nevozade
Contributor IV

Hi @OliverB ,

Actually, we analyzed the EDID of our monitor before and we saw that 2400x900. According to your request, I am sending you the edid file for you to analyze and find the problem. I am asking for your support in this matter. (I attach the file as .zip because the .bin extension has failed to upload)

Best Regards,

 


Nevzat

0 Kudos

2,150 Views
OliverB
NXP Employee
NXP Employee

I verified that HDMI 2400x900 and two LVDS 1920x1200 can work with your edid and 0001-arm64-boot-dts-freescale-Add-configuration-for-two-L.patch. I did not need any uboot changes or weston.ini changes. I also previously verified that 2560 width can work, this would be the upper limit of the width for a single display pipe.

Also the settings below are not for iMX8QM and should not be used:

video=mxcdi0fb:RGB24,2400x900M@60,hdmi video=mxcdi1fb:RGB666,XGA,di0_primary ldb=di1 

These are for iMX6DQ with IPUv3. 

To force a DRM mode the form should be 

video=HDMI-A-1:2400x900-32@60

 

My patch supports the dual-channel 1920x1200 NXP display panel, so some change would be needed to get change the panel and disable dual channel mode.

 

Regards,

 

Oliver

 

 

 

0 Kudos

2,131 Views
nevozade
Contributor IV

Hi @OliverB,

Although I think I'm doing it right, just in case could you zip and share the freescale folder (including dts and dtsis) in build/tmp/work-shared/imx8qmmek/kernel-source/arch/arm64/boot/dts/ path with me? I want to make sure I'm doing the same thing you did before I move forward.

Thanks.

0 Kudos

2,118 Views
OliverB
NXP Employee
NXP Employee

Here are the device tree files. I hope they helps. 

Regards,

Oliver

 

 

 

0 Kudos

2,133 Views
nevozade
Contributor IV

Hello @OliverB 

Even I use your patch, HDMI 2400x900 and LVDS not working for me. If I disabled lvds-channel@0 HDMI works. If I make "okay" lvds-channel@0 LVDS works. It seems when HDMI starts to work LVDS disabled automatically. You can my final dts as attached. What is the reason of this issue?

Best regards.

0 Kudos

2,083 Views
OliverB
NXP Employee
NXP Employee

Can you provide the full log from powerup to the linux prompt?

 

Regards,

 

Oliver

Tags (1)
0 Kudos

2,074 Views
nevozade
Contributor IV

Hi @OliverB ,

  • The case that 2 LVDS panels work together, but HDMI (2400x900) does not work -> lvds.log and imx8qm-mek-jdi-wuxga-lvds1-panel-LVDS.dtsi
  • The case that HDMI (2400x900) works, but no display on LVDS panels -> hdmi.log and imx8qm-mek-jdi-wuxga-lvds1-panel-HDMI.dtsi

All specified files exist in the attached zip file.

Best Regards,

 

Nevzat.

0 Kudos

1,998 Views
OliverB
NXP Employee
NXP Employee

Can you try this file? The LVDS nodes were disabled. 

All three display are working with this file included as follows:

--- a/arch/arm64/boot/dts/freescale/imx8qm-mek-jdi-wuxga-lvds1-panel.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek-jdi-wuxga-lvds1-panel.dts
@@ -5,4 +5,4 @@
*/

#include "imx8qm-mek.dts"
-#include "imx8qm-mek-jdi-wuxga-lvds1-panel.dtsi"
+#include "imx8qm-mek-jdi-wuxga-lvds1-panel-HDMI-fixed.dtsi"

 

 

Regards,

 

Oliver

0 Kudos

1,950 Views
nevozade
Contributor IV

Hi @OliverB ,

Sorry, due to local time difference, I have just tried your suggestions.

Firstly, I changed imx8qm-mek-jdi-wuxga-lvds1-panel.dts file as you said (changed include file) with your attached dtsi file. Then, I make dtb files and write to SD card. However, although I set different dtb files on booting many times, there is no display at the same time LVDS and HDMI panels. Even the HDMI with imx8qm-mek-hdmi.dtb that worked with us did not work with your dtb. Only way to get view on HDMI is disabling lvds-channel0, which gives HDMI output but closes LVDS panels.

Secondly, I copy your freescale folder by overwriting mine. Then, write them into SD card but there is no change with the display issue. I set different fdt_file on booting such as imx8qm-mek-jdi-wuxga-panel.dtb, imx8qm-mek-hdmi.dtb, and imx8qm-mek-jdi-wuxga-lvds0-lvds1-hdmi.dtb , nothing changes. The HDMI monitor that you have is acting different from ours in my opinion. Any other suggestion?

Best Regards,

 

Nevzat

 

0 Kudos

2,170 Views
OliverB
NXP Employee
NXP Employee

I made the patch below for imx8qm-mek-jdi-wuxga-lvds1-panel-rpmsg.dts and I can get the LVDS panel on LVDS1 and HDMI working together.

$ git diff
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek-jdi-wuxga-lvds1-panel-rpmsg.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek-jdi-wuxga-lvds1-panel-rpmsg.dts
index b57423235fc7..37b0ccfe5d4f 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm-mek-jdi-wuxga-lvds1-panel-rpmsg.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek-jdi-wuxga-lvds1-panel-rpmsg.dts
@@ -4,5 +4,5 @@
* Copyright 2020 NXP
*/

-#include "imx8qm-mek-rpmsg.dts"
+#include "imx8qm-mek-hdmi.dts"
#include "imx8qm-mek-jdi-wuxga-lvds1-panel.dtsi"

 

The problem getting LVDS0 and HDMI working is that in our default configuration display controller 0 is set to be used by HDMI only. So both display pipes are configured to be used by the HDMI. It should be possible to split the display controller to use one pipe for HDMI and one pipe for LVDS. I'll investigate what changes are required.

Is it possible to MIPI  DSI1 for your use case? The default imx8qm-mek-default.dts supports HDMI, LVDS1 and MIPI DSI1 (LVDS0 and MIPI DSI0 are disabled).

 

Regards,

Oliver

 

0 Kudos

2,150 Views
nevozade
Contributor IV
0 Kudos

2,144 Views
nevozade
Contributor IV
0 Kudos