Faster TX2i HDMI Switching

Hello,

I have multiple TX2i boards hooked up to an HDMI switch. When switching HDMI output from one TX2i to another, it takes from 3 to 5 seconds. HDMI switching between 2 non-Jetson computers is nearly instant. The HDMI switch is top of the line and should switch very quick.

Is there a reason that the TX2i boards take longer to start outputting HDMI after a hot-plug/hdmi switch? Is there something I can modify to reduce switching time?

This behavior also exists with Jetson Nanos.

Thanks,

Dylan

Hi Dylan,

When switching HDMI output from one TX2i to another, it takes from 3 to 5 seconds. HDMI switching between 2 non-Jetson computers is nearly instant

We seldom have such usecase. I don’t think it is due to HDMI switch but the hotplug itself is already slow. Could you confirm it? How many display do you need on tegra? and are you using devkit?

Also, I would like to know whenever you said “it is slow”, did you mean “the desktop shows up slowly”?
It is possible that the gdm starts slowly with the gnome desktop. To clarify this case, you could also disable gdm and use only the fbconsole to test the speed.

Yes I have an unusual usecase where I have 3 TX2i boards (Jetpack 4.3) connected to an HDMI switch, and I need to switch between their HDMI output quite quickly. At the moment I am using devkits, but will move to a custom board soon.

From what I have been seeing I would agree that the hotplug is slow. When i say “slow” I mean that when I switch from one HDMI output to another, the screen is black for a several seconds before the desktop environment is displayed. I experience this both with Gnome and with the Weston compositor running the desktop shell.

I will try fbconsole to see if it has the same behavior.

After trying the framebuffer console and getting the same results, I think that this is probably something that I will not be able to change. Still if there are any thoughts on how HDMI hot plug time could be reduced, I appreciate any input.

Hi Dylan,

Could you check your dmesg and see how is the elapsed time between “hdmi: plugged” and “tegradc.xxx: unblanked”?

1.06 seconds between “tegradc.xxx:unblanked” and “hdmi:plugged”. “tegradc.xxx:unblanked” appeared before “hdmi:plugged” if that matters.

Are there any other kernel messages to look out for? What about kernel configuration? I noticed HDCP is enabled, but my understanding is that this should not affect anything unless HDCP is actually used.

Hi Dylan,

No, HDCP is not enabled in any L4T release now. Unless you enable it by yourself.

Below is my test result after my hotplug. It seems not have 1.06 sec. Could you share your result too?

[  322.846391] tegradc 15210000.nvdisplay: blank - powerdown
[  322.846480] tegradc 15210000.nvdisplay: unblank
[  322.858510] tegradc 15210000.nvdisplay: hdmi: tmds rate:148500K prod-setting:prod_c_hdmi_111m_223m
[  322.859671] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[  322.859677] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  322.904817] tegradc 15210000.nvdisplay: hdmi: plugged
[  322.931941] tegradc 15210000.nvdisplay: blank - powerdown
[  323.014906] tegradc 15210000.nvdisplay: unblank
[  323.022819] tegradc 15210000.nvdisplay: hdmi: tmds rate:148500K prod-setting:prod_c_hdmi_111m_223m
[  323.023995] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[  323.024001] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  323.061332] tegradc 15210000.nvdisplay: unblank
[  323.079225] tegradc 15210000.nvdisplay: unblank

Here are my results:

[59706.432413] tegradc 15210000.nvdisplay: blank - powerdown
[59706.438323] tegradc 15210000.nvdisplay: unblank
[59706.438886] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[59706.438969] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[59706.439055] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[59706.440267] Parent Clock set for DC plld2
[59706.444413] tegradc 15210000.nvdisplay: hdmi: tmds rate:148500K prod-setting:prod_c_hdmi_111m_223m
[59706.445624] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[59706.445631] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[59706.480760] extcon-disp-state external-connection:disp-state: cable 47 state 1
[59706.480762] Extcon AUX1(HDMI) enable
[59708.494670] extcon-disp-state external-connection:disp-state: cable 51 state 1
[59708.494673] Extcon HDMI: HPD enabled
[59708.494691] tegradc 15210000.nvdisplay: hdmi: plugged
[59711.512450] extcon-disp-state external-connection:disp-state: cable 47 state 0
[59711.512455] Extcon AUX1(HDMI) disable
[59711.534580] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
[59711.534656] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[59711.535099] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
[59711.535198] tegradc 15210000.nvdisplay: blank - powerdown
[59711.535485] extcon-disp-state external-connection:disp-state: cable 51 state 0
[59711.535488] Extcon HDMI: HPD disabled
[59711.535535] tegradc 15210000.nvdisplay: hdmi: unplugged

Looks like it took a little over 2 seconds between unblank and hdmi plugged this time.

Hi,

Is it a test along with your HDMI switch?

Yes, this test is with the HDMI switch switching between two TX2i. Similar behavior when turning the monitor off and back on.

Hi,
I was wondering this switch also gives out extra delay. As you know, I don’t have your HDMI switch so my test result didn’t match with yours.

Current I don’t think this issue could be quick resolved by software method. We will put this issue on list and see if we could resolve it in future.

Could you also share us what HDMI switch you are using? Thanks.

Sorry for the delay. The HDMI switch I used for the kernel log I posed is custom from a third-party, but we have seen the same behavior with another switch and by turning the monitor off then on.

This dialog has been helpful so I want to keep the post unresolved at the moment. We will post timing with the commercial switch, as well as the switch model.