Multi-display support on iMX8QM running Android 10

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

Multi-display support on iMX8QM running Android 10

3,252 Views
tpe
Contributor III

Hello,

My aim is to configure two displays on LVDS0 and LVDS1 using two LVDS-HDMI adapter cards on the iMX8QM MEK platform running Android 10. I want to have one display in portrait mode and the second one in landscape mode. I also want the touch inputs rotated respectively. I'm running into a few issues getting the correct resolution on my secondary display. I've tried to manually set the display timings in imx8qm-mek.dts with the following: 

tpe_0-1605805208656.png

Attached is the result. Any input would be much appreciated

Thank you!

0 Kudos
7 Replies

3,238 Views
igorpadykov
NXP Employee
NXP Employee

Hi tpe

 

one can look at sect.8.3.2 Enabling multiple-display function  Android User’s Guide​

from android documentation on

https://www.nxp.com/design/software/embedded-software/i-mx-software/android-os-for-i-mx-applications...

 

Best regards
igor

0 Kudos

3,232 Views
tpe
Contributor III

Hello Igor,

Thank you for your input. I've already read this section in the Android's user guide and was able to get output in my second display, but the secondary screen resolution is off. However, when I launch a separate application on the second display, the display resolution is scaled correctly and when I dumpsys the display info, both of my displays have the correct display timings. My main concern is the incorrect display resolution as shown in the attached image once the system is finished booting. Also, is there any additional documentation for rotating surface and touch on secondary displays? The documentation is limited to binding display ports with input ports

 

0 Kudos

3,219 Views
igorpadykov
NXP Employee
NXP Employee

Hi tpe

 

resolution should not set with "display-timings" as it6263  (LVDS-HDMI) driver

reads panel capability (resolution) through i2c in functions 

it6263_read_edid(), it6263_get_modes(), drm_detect_hdmi_monitor()

https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/gpu/drm/bridge/it6263.c?h=imx_5.4....

as this is hdmi, strictly speaking supported only cea resolutions:

https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/gpu/drm/drm_edid.c?h=imx_5.4.47_2....

 

Best regards
igor

0 Kudos

3,214 Views
tpe
Contributor III

Hello,

How would I go about modifying my HDMI resolutions? One screen is natively 1280x800 and the other 400x1280. Is there any documentation or do I set these through I2C in device tree configurations?

0 Kudos

3,199 Views
igorpadykov
NXP Employee
NXP Employee

>How would I go about modifying my HDMI resolutions?

 

linux hdmi driver supports only cea modes described in "struct drm_display_mode"

drm_edid.c. In general you can add neceesary resolution to that table, but

operation can not be guatanteed. In particular using non-cea modes can lead

to sound loss.

 

Best regards
igor

 

 

0 Kudos

3,146 Views
tpe
Contributor III

In "struct drm_display_mode" the resolutions are auto generated by a DMT spec. Where is this DMT spec defined and how can I differentiate EDID for my two displays? It seems like it grabs the best fit for both displays instead of independent configurations

0 Kudos

3,128 Views
igorpadykov
NXP Employee
NXP Employee

for cea one can look for example in Table 33-3. Video Modes

i.MX 6Dual/6Quad Applications Processor Reference Manual

 

> how can I differentiate EDID for my two displays? 

 

driver reads panel capability (resolution) through i2c in functions it6263_read_edid(),

https://en.wikipedia.org/wiki/Extended_Display_Identification_Data

https://www.epiphan.com/blog/what-is-edid-and-why-is-it-important/

 

Best regards
igor

0 Kudos