Hello,
I'm working on an android projected that makes use of the i.MX6DL in which we need to display the system on the board LCD(480x272p) and a video on a HDMI(720p) display. Its already implemented ad supported by android, but I'm facing an issue with the video output. I can only make both displays work properly if I set on the bootargs using the HDMI on fb0, but this results on the LCD getting a really small resolution. Otherwise if I set the LCD display to be the fb0, the HDMI output is distorted, loses color depth and resolution.
Today my bootargs is the following:
setenv bootargs_hdmi 'setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=lcd,CLAA-WVGA@60,if=RGB24 di0_primary video=mxcfb2:dev=hdmi,1280x720M@60,if=RGB24 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale ldo_active=on rootwait'
Wich results on the HDMI output being distorted.
Attached follows two pictures of both cases, hdmi as first display and LCD as a first display.
The reason that I cant just make the HDMI as primary, is that I the android framework somehow recognized the LCD display as the Presentation Display, displaying in it the video.
Can someone give a light on whats is going on?
Hi Davi
hdmi distortions may be caused by incorrect clocks,
please check attached Linux Guide for dual LCD settings,
one can try with 3.14.28 Linux on below link
SABRE Board Reference Design|Freescale
Best regards
igor
Hello Igor
I investigated about the pixel clock and it seemed to be correct. Investigating a little bit furter, I discovered that tha bits_per_pixel of the external HDMI were the double of the board LCD, wich wast 16 bits/pixel. I forced the External display to have the same amount of the lcd by using
echo 16 > fb2/bits_per_pixel
After that the screen is displayed on the right resolution and with no distotion, but some "flashing black" keeps appearing on the screen. But if I force set the resolution this flickering stops.
echo S:1280x720p-60 > mode
This solved my issue, but now the log keeps printing this message:
imx6.gralloc( 2360): FBIOPAN_DISPLAY failed: Invalid argument.
You have any idea why the bits per pixel is wrong? I'm now using those commands on init.rc to force the bits_per_pixel to 16. Is there a better solution?
Thanks in advance.