Faster wakeup HDMI display ?

Post Reply
Erick_Estrada
Posts: 13
Joined: Fri May 28, 2021 10:12 pm
languages_spoken: english
ODROIDs: Odroid C4
Has thanked: 0
Been thanked: 0
Contact:

Faster wakeup HDMI display ?

Post by Erick_Estrada »

When using a PC monitor it takes about 5 seconds to show image after Odroid c4 wake from sleep with gpio button.

I tested the same with several small LCD, with sizes from 3.5 - 5 inch from waveshare and other chinese supliers and it takes almost 10 seconds to show image after wake up. I made several changes on boot and config/env ini files, with no gains, including parameters like:
- disablehpd
- prevent_sleep
- display_autodetect

I even tried with display in a independent power supply (this way only Odroid go to suspend and diplasy stays wake all time) with the same 10 seconds.

My target is a 4.3inch display. Someone knows a way to make display wake up faster on the Odroid side, or another faster brand/model ? Or I will need to change LCD firmware ? These ones I tested were mainly based on Realtek RTD2660H.

User avatar
odroid
Site Admin
Posts: 37538
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1836 times
Been thanked: 1159 times
Contact:

Re: Faster wakeup HDMI display ?

Post by odroid »

Try changing the u-boot boot splash image for your 4.3inch(480x272? or 800x480?) resolution.
https://wiki.odroid.com/odroid-c4/appli ... ootlogo_c4

Erick_Estrada
Posts: 13
Joined: Fri May 28, 2021 10:12 pm
languages_spoken: english
ODROIDs: Odroid C4
Has thanked: 0
Been thanked: 0
Contact:

Re: Faster wakeup HDMI display ?

Post by Erick_Estrada »

Thanks for your super quick reply.

TChanged splash made with Gimp with the required parameters. I can see my splash, but the wake up times remains the same.

I'm using 800x480, but can test 480x272 if it goes faster.

Using a SPI could be faster ? I'm ordering the 3.2 and 3.5 displays for testing, just in case.

Erick_Estrada
Posts: 13
Joined: Fri May 28, 2021 10:12 pm
languages_spoken: english
ODROIDs: Odroid C4
Has thanked: 0
Been thanked: 0
Contact:

Re: Faster wakeup HDMI display ?

Post by Erick_Estrada »

BTW, can i improve this recompiling U-Boot with some customizations ?

User avatar
odroid
Site Admin
Posts: 37538
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1836 times
Been thanked: 1159 times
Contact:

Re: Faster wakeup HDMI display ?

Post by odroid »

I don't understand why they have different booting process.
Do you have a USB-UART cable to monitor the boot process to find out why two different display devices make different booting time?
https://www.hardkernel.com/shop/usb-uart-module-kit/

Erick_Estrada
Posts: 13
Joined: Fri May 28, 2021 10:12 pm
languages_spoken: english
ODROIDs: Odroid C4
Has thanked: 0
Been thanked: 0
Contact:

Re: Faster wakeup HDMI display ?

Post by Erick_Estrada »

Thanks again for super quick reply.

Just checking: my problem is not when I start from zero, when I turn on my device, this timming works fine. My problem is after I started and go to sleep/suspend (with the power button of GPIO 9 and 11) and then wake up. It would be great if it took less seconds.

About the console, I'm monitoring it - great tool by the way - but I didn't find anything helpful. Maybe you could take a look ?

When going to sleep/suspend:

Code: Select all

[  297.771939@0] cectx ff80023c.aocec: aocec_early_suspend, suspend sts:1       
[  298.592430@3] cectx ff80023c.aocec: aml_cec_pm_prepare                       
wake-on-lan = 00000000                                                          
bl30 get wakeup sources!                                                        
process command 00000006                                                        
bl30 enter suspend!                                                             
Little core clk suspend rate 2016000000                                         
store restore gp0 pll                                                           
store restore gp1 pll                                                           
suspend_counter: 3                                                              
Enter ddr suspend                                                               
ddr suspend time: 15us                                                          
alarm=4260S                                                                     
process command 00000001                                                        
cec ver:2018/07/03                                                              
CEC cfg:0x003b                                                                  
WAKEUP GPIO cfg:0x000001df                                                      
08915d0000000000set_remote_mode 0x00000000cec reset                             
Set cec pinmux:0x11                                                             
kern log_addr:0x04                                                              
Set cec log_addr:0x04,ADDR0:14    
When wake up:

Code: Select all

exit_reason:0x0d                                                                
Enter ddr resume                                                                
ddr resume time: 123us                                                          
store restore gp0 pll                                                           
store restore gp1 pll                                                           
cfg15 d3b00000                                                                  
cfg15 d3b00000                                                                  
Little core clk resume rate 2016000000                                          
[  298.879095@3] cectx ff80023c.aocec: cec resume noirq!                        
[  298.879201@0] cectx ff80023c.aocec: wakeup_reason:0xd                        
[  298.883591@0] cectx ff80023c.aocec: cev val1:0x0,0x0,0x0                     
[  298.888866@0] cectx ff80023c.aocec: cev val2: 0x0x0                          
[  298.996375@0] meson6-dwmac ff3f0000.ethernet: Failed to reset the dma        
[  298.997185@0] stmmac_hw_setup: DMA engine initialization failed              
[  300.410802@3] cectx ff80023c.aocec: aml_cec_pm_complete                      
[  300.643514@1] cectx ff80023c.aocec: aocec_late_resume, suspend sts:0
I don know if it makes any difference, but when I wake up, the first lines shows in less than 1 second and the last 2 takes a little bit more than 1 second.

I noted that with waveshare 5 inch lcd "H" takes 6 - 7 seconds, and waveshare 4.3inch LCD "B" as well as other chinese no brand takes 9 - 10 seconds. A desktop LCD from Philips takes 5 seconds.

User avatar
odroid
Site Admin
Posts: 37538
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1836 times
Been thanked: 1159 times
Contact:

Re: Faster wakeup HDMI display ?

Post by odroid »

Is the Philips monitor having a HDMI CEC feature?

Erick_Estrada
Posts: 13
Joined: Fri May 28, 2021 10:12 pm
languages_spoken: english
ODROIDs: Odroid C4
Has thanked: 0
Been thanked: 0
Contact:

Re: Faster wakeup HDMI display ?

Post by Erick_Estrada »

No, at least not as far as I checked. I just learned that Philips commercially call CEC as EasyLink.

This 'faster' monitor is a 221V8, it uses HDMI 1.4 and have HDCP.

If you have hardware suggestions, they are more than welcome. Today I'm trying pretty much everything: orderd Odroid displays for tests (maybe using another interface than hdmi ?), called Waveshare for a customized firmware (even because it is faster on 5 inch than 4.3inch from them and both uses the same controller), ordered some other RTD2660/2662 based lcd driver boards (the same used by waveshare) and also Texas Instruments TFP401 based. I will also try to write some LCD firmware myself (I get some paperweight LCDs :-) ).

Maybe you could guide me to the right path. For instance....
1. Hdmi or other interface, like spi, rgb hat, etc ? (Hdmi is already working for Android, and it is a plus. I don need multi touch, high frame rates, nothing, it is for industrial applications).
2. If hdmi, which chipset could be better, Realtek RTD2660, Texas TFP4-1, maybe other ?

User avatar
odroid
Site Admin
Posts: 37538
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1836 times
Been thanked: 1159 times
Contact:

Re: Faster wakeup HDMI display ?

Post by odroid »

Wake-up process from suspend mode seems to check a few more wakeup sources inefficiently.
But, I have no idea what it is.

Can you compare the wakeup sources between Philips and others via serial console?
exit_reason:0x0d

Also measure the resume time without display connection too.

Erick_Estrada
Posts: 13
Joined: Fri May 28, 2021 10:12 pm
languages_spoken: english
ODROIDs: Odroid C4
Has thanked: 0
Been thanked: 0
Contact:

Re: Faster wakeup HDMI display ?

Post by Erick_Estrada »

The messages in the console came almost with same times.

This block came in +- 1 second:
exit_reason:0x0d
Enter ddr resume
ddr resume time: 125us
store restore gp0 pll
store restore gp1 pll
cfg15 d3b00000
cfg15 d3b00000
Little core clk resume rate 2016000000
[ 88.104239@3] cectx ff80023c.aocec: cec resume noirq!
[ 88.104348@0] cectx ff80023c.aocec: wakeup_reason:0xd
[ 88.108756@0] cectx ff80023c.aocec: cev val1:0x0,0x0,0x0
[ 88.114040@0] cectx ff80023c.aocec: cev val2: 0x0x0
[ 88.222121@3] meson6-dwmac ff3f0000.ethernet: Failed to reset the dma
[ 88.222921@3] stmmac_hw_setup: DMA engine initialization failed

And them, in one second more:
[ 90.548690@0] cectx ff80023c.aocec: aml_cec_pm_complete
[ 90.813983@3] cectx ff80023c.aocec: aocec_late_resume, suspend sts:0


Btw, I also tested with other OS images and the wake times were the same. These testes were with official Android pie_64_20210414


Here is the log in each case:

-----> 4.3 inch

4.3 inch going to sleep:

Code: Select all

[   68.576533@1] cectx ff80023c.aocec: aocec_early_suspend, sus1
[   68.615377@0] audit: rate limit exceeded                                     
[   69.692898@1] cectx ff80023c.aocec: aml_cec_pm_prepare                       
wake-on-lan = 00000000                                                          
wake-on-lan = 00000000                                                          
bl30 get wakeup sources!                                                        
process command 00000006                                                        
bl30 enter suspend!                                                             
Little core clk suspend rate 2016000000                                         
store restore gp0 pll                                                           
store restore gp1 pll                                                           
suspend_counter: 1                                                              
Enter ddr suspend                                                               
ddr suspend time: 17us                                                          
alarm=4S                                                                        
process command 00000001                                                        
cec ver:2018/07/03                                                              
CEC cfg:0x003b                                                                  
WAKEUP GPIO cfg:0x000001df                                                      
08915d0000000000set_remote_mode 0x00000000cec reset                             
Set cec pinmux:0x11                                                             
kern log_addr:0x04                                                              
Set cec log_addr:0x04,ADDR0:14 
4.3 inch waking up:

Code: Select all

exit_reason:0x0d                                                                
Enter ddr resume                                                                
ddr resume time: 125us                                                          
store restore gp0 pll                                                           
store restore gp1 pll                                                           
cfg15 d3b00000                                                                  
cfg15 d3b00000                                                                  
Little core clk resume rate 2016000000                                          
[   88.104239@3] cectx ff80023c.aocec: cec resume noirq!                        
[   88.104348@0] cectx ff80023c.aocec: wakeup_reason:0xd                        
[   88.108756@0] cectx ff80023c.aocec: cev val1:0x0,0x0,0x0                     
[   88.114040@0] cectx ff80023c.aocec: cev val2: 0x0x0                          
[   88.222121@3] meson6-dwmac ff3f0000.ethernet: Failed to reset the dma        
[   88.222921@3] stmmac_hw_setup: DMA engine initialization failed              
[   90.548690@0] cectx ff80023c.aocec: aml_cec_pm_complete                      
[   90.813983@3] cectx ff80023c.aocec: aocec_late_resume, suspend sts:0 

-----> Philips

(This one was tricky :-) as I was using it)

Philips going to sleep:

Code: Select all

[   45.771940@1] audit: rate limit exceeded
[   45.800885@0] cectx ff80023c.aocec: aocec_early_suspend, suspend sts:1
[   47.134308@2] cectx ff80023c.aocec: aml_cec_pm_prepare
wake-on-lan = 00000000
wake-on-lan = 00000000
bl30 get wakeup sources!
process command 00000006                                                        
bl30 enter suspend!                                                             
Little core clk suspend rate 2016000000                                         
store restore gp0 pll                                                           
store restore gp1 pll                                                           
suspend_counter: 1                                                              
Enter ddr suspend                                                               
ddr suspend time: 15us                                                          
alarm=24S                                                                       
process command 00000001                                                        
cec ver:2018/07/03                                                              
CEC cfg:0x003b                                                                  
WAKEUP GPIO cfg:0x000001df                                                      
08915d0000000000set_remote_mode 0x00000000cec reset                             
Set cec pinmux:0x11                                                             
kern log_addr:0x04                                                              
Set cec log_addr:0x04,ADDR0:14 
Philips waking up:

Code: Select all

exit_reason:0x0d                                                                
Enter ddr resume                                                                
ddr resume time: 123us                                                          
store restore gp0 pll                                                           
store restore gp1 pll                                                           
cfg15 3b00000                                                                   
cfg15 d3b00000                                                                  
Little core clk resume rate 2016000000                                          
[   47.424710@0] cectx ff80023c.aocec: cec resume noirq!                        
[   47.424813@2] cectx ff80023c.aocec: wakeup_reason:0xd                        
[   47.429240@3] cectx ff80023c.aocec: cev val1:0x0,0x0,0x0                     
[   47.434504@0] cectx ff80023c.aocec: cev val2: 0x0x0                          
[   47.542272@0] meson6-dwmac ff3f0000.ethernet: Failed to reset the dma        
[   47.543080@0] stmmac_hw_setup: DMA engine initialization failed              
[   48.956739@1] cectx ff80023c.aocec: aml_cec_pm_complete                      
[   49.219106@1] cectx ff80023c.aocec: aocec_late_resume, suspend sts:0  

-----> No display

No display going to sleep

Code: Select all

[  164.249617@2] cectx ff80023c.aocec: aocec_early_suspend, suspend sts:1
[  164.898130@3] cectx ff80023c.aocec: aml_cec_pm_prepare
wake-on-lan = 00000000
wake-on-lan = 00000000
bl30 get wakeup sources!
process command 00000006
bl30 enter suspend!
Little core clk suspend rate 2016000000
store restore gp0 pll
store restore gp1 pll
suspend_counter: 1
Enter ddr suspend
ddr suspend time: 17us
alarm=4260S
process command 00000001
cec ver:2018/07/03
CEC cfg:0x003b
WAKEUP GPIO cfg:0x000001df
08915d0000000000set_remote_mode 0x00000000cec reset
Set cec pinmux:0x11
kern log_addr:0x04
Set cec log_addr:0x04,ADDR0:14  
No display Waking up:

Code: Select all

exit_reason:0x0d                                                                
Enter ddr resume                                                                
ddr resume time: 126us                                                          
store restore gp0 pll                                                           
store restore gp1 pll                                                           
cfg15 d3b00000                                                                  
cfg15 d3b00000                                                                  
Little core clk resume rate 2016000000                                          
[  248.482776@3] cectx ff80023c.aocec: cec resume noirq!                        
[  248.482887@0] cectx ff80023c.aocec: wakeup_reason:0xd                        
[  248.487270@0] cectx ff80023c.aocec: cev val1:0x0,0x0,0x0                     
[  248.492576@0] cectx ff80023c.aocec: cev val2: 0x0x0                          
[  248.599960@0] meson6-dwmac ff3f0000.ethernet: Failed to reset the dma        
[  248.600764@0] stmmac_hw_setup: DMA engine initialization failed              
[  250.009854@0] cectx ff80023c.aocec: aml_cec_pm_complete                      
[  250.160905@3] cectx ff80023c.aocec: aocec_late_resume, suspend sts:0

User avatar
odroid
Site Admin
Posts: 37538
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1836 times
Been thanked: 1159 times
Contact:

Re: Faster wakeup HDMI display ?

Post by odroid »

All of them shows the same "0x0d" wakeup source from Always-On(AO) GPIO transient.
Therefore, my assumption seems to be completely wrong.

Edit: Tested again.
Our Vu7A+ display takes only 3~4 seconds(or less) to show something on the screen from the suspend state.
We will make a video and share it with our env.ini file soon.

User avatar
codewalker
Posts: 1281
Joined: Mon Feb 25, 2013 11:03 am
languages_spoken: english
ODROIDs: all
Has thanked: 58 times
Been thanked: 91 times
Contact:

Re: Faster wakeup HDMI display ?

Post by codewalker »

Wake-up seems to take less than a few seconds. I used a Vu7A+ for this test.

https://www.youtube.com/watch?v=PZCxs_tG0NM


I've modified values in /odm/env.ini

disablehpd="true"
prevent_sleep="0"

Code: Select all

[display]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Resolution Configuration
; 'hdmimode' & 'outputmode' must be one of below to configure display resolution within
; supported by your TV or monitor.
; And both of values MUST be same.
;+--------------------+----------------------------------+
;| Symbol             | Resolution                       |
;+--------------------+----------------------------------+
;| "480x320p60hz"     | 480x320 Progressive 60Hz         |
;| "480p60hz"         | 720x480 Progressive 60Hz         |
;| "576p50hz"         | 720x576 Progressive 50Hz         |
;| "720p60hz"         | 1280x720 Progressive 60Hz        |
;| "720p50hz"         | 1280x720 Progressive 50Hz        |
;| "1080p60hz"        | 1920x1080 Progressive 60Hz       |
;| "1080p50hz"        | 1920x1080 Progressive 50Hz       |
;| "1080p30hz"        | 1920x1080 Progressive 30Hz       |
;| "1080p24hz"        | 1920x1080 Progressive 24Hz       |
;| "1080i60hz"        | 1920x1080 Interlaced 60Hz        |
;| "1080i50hz"        | 1920x1080 Interlaced 50Hz        |
;| "2160p60hz"        | 3840x2160 Progressive 60Hz       |
;| "2160p50hz"        | 3840x2160 Progressive 50Hz       |
;| "2160p30hz"        | 3840x2160 Progressive 30Hz       |
;| "2160p25hz"        | 3840x2160 Progressive 25Hz       |
;| "2160p24hz"        | 3840x2160 Progressive 24Hz       |
;| "smpte24hz"        | 3840x2160 Progressive 24Hz SMPTE |
;| "640x480p60hz"     | 640x480 Progressive 60Hz         |
;| "800x480p60hz"     | 800x480 Progressive 60Hz         |
;| "800x600p60hz"     | 800x600 Progressive 60Hz         |
;| "1024x600p60hz"    | 1024x600 Progressive 60Hz        |
;| "1024x768p60hz"    | 1024x768 Progressive 60Hz        |
;| "1280x800p60hz"    | 1280x800 Progressive 60Hz        |
;| "1280x1024p60hz"   | 1280x1024 Progressive 60Hz       |
;| "1360x768p60hz"    | 1360x768 Progressive 60Hz        |
;| "1440x900p60hz"    | 1440x900 Progressive 60Hz        |
;| "1600x900p60hz"    | 1600x900 Progressive 60Hz        |
;| "1600x1200p60hz"   | 1600x1200 Progressive 60Hz       |
;| "1680x1050p60hz"   | 1680x1050 Progressive 60Hz       |
;| "1920x1200p60hz"   | 1920x1200 Progressive 60Hz       |
;| "2560x1080p60hz"   | 2560x1080 Progressive 60Hz       |
;| "2560x1440p60hz"   | 2560x1440 Progressive 60Hz       |
;| "2560x1600p60hz"   | 2560x1600 Progressive 60Hz       |
;| "3440x1440p60hz"   | 3440x1440 Progressive 60Hz       |
;+--------------------+----------------------------------+
hdmimode="1080p60hz"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Custom modeline
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; hdmimode="custombuilt"
; 2560x1440p60hz sample
modeline="2560,1440,241500,88800,60,2560,2608,2640,2720,1440,1442,1447,1481,1,1,1"
customwidth="2560"
customheight="1440"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; voutmode
; hdmi or dvi
voutmode="hdmi"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Display Auto Detection
; "false" or "true"
display_autodetect="true"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Auto Framerate
autoFramerate="false"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Enable backlight_pwm
;+----------+----------------+
;|  Value   | target         |
;+----------+----------------+
;| "no"     |  disable       |
;| "yes"    |  ODROID-VU5/7  |
;| "invert" |  ODROID-VU8    |
;+----------+----------------+
backlight_pwm="yes"


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; weather screen adjust by zoom or align
adjustScreenWay="alignment"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Display Zoom Rate
zoom_rate="100"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Screen alignment
screenAlignment="0 0 0 0"

colorattribute="444,8bit"

osd_reverse="0"
video_reverse="0"
suspend_hdmiphy="1"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; HPD enable/disable option
disablehpd="true"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Disable VU7
disable_vu7="false"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; invert touch screen x,y
touch_invert_x="false"
touch_invert_y="false"

test_mt_vid="0000"
test_mt_pid="0000"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Prevent screen sleep
prevent_sleep="0"

[cpu]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Max cpu frequency sets
;+----------+-----------+
;|  Value   | Frequency |
;+----------+-----------+
;| "2100"   | 2.100GHz  | NOTICE: 2.1GHz is the Overclock frequency.
;| "2016"   | 2.016GHz  | The Overclock frequency can cause unexpected crash.
;| "1908"   | 1.908GHz  |
;| "1800"   | 1.800GHz  |
;| "1704"   | 1.704GHz  |
;+----------+-----------+
max_freq_little="2016"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; A55 governor
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; "interactive"
; "performance"
; "schedutil"
governor_little="performance"

[etc]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Wake on Lan
enable_wol="0"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Gpio power key
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; GPIOX.3 (Pin 11) of
; 2x20 pins connector
gpiopower="479"

heartbeat="1"
sg_tablesize="2"

overlays="i2c0 i2c1 spi0 uart0 pcf8563 pwm_ab pwm_ef"
overlays_resize=16384
gpuScaleMode="2"

Erick_Estrada
Posts: 13
Joined: Fri May 28, 2021 10:12 pm
languages_spoken: english
ODROIDs: Odroid C4
Has thanked: 0
Been thanked: 0
Contact:

Re: Faster wakeup HDMI display ?

Post by Erick_Estrada »

That's great, Codewalker ! Thanks !

I was wondering where to focus. with your video it is more than clear that the problem is in the firmware of the displays I'm using. I will put energy on this.

Post Reply

Return to “Hardware and peripherals”

Who is online

Users browsing this forum: No registered users and 1 guest