Hdmi 1.0 related queries

my tx2 dev kit has hdmi 2.0 but my custom carrier card has hdmi 1.4 output.

im getting display in devkit but not on my custom carrier card. in both case same software is used(jetpack 3.3 rel 28.2.1).

im getting edid data from monitor but nothing is displayed on monitor.

do we have to change anything in software so that it support hdmi 1.4 as well ??

thank you !

Please try to dump the boot log and xorg log.

https://elinux.org/Jetson_TX2/r28_Display_debug

please find the attached logs for jetson_tx2_devkit & jetson tx2i custom carrier card

please note edid data is different in both cases while the same monitor being used.

and there is no x11 directory to capture xorg.conf log in both cases.
custom_carrier_hdmi.txt (86.1 KB)
jetson_devkit_hdmi.txt (380 KB)

Yes, the edid is different because it fails to read edid from your monitor when using your carrier board.

What is the hardware difference between your board and devkit in this part?

[    4.498614] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.502714] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.506816] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.510909] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.515027] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.519125] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.523234] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.527317] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.531441] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.535537] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.539631] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.543726] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.547821] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.551913] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.556023] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.560119] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.564213] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.568330] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.572434] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.576532] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.580630] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.584738] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.588833] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.592928] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.597019] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.601115] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.605215] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.609316] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.613416] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.617517] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.621622] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.625717] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.629814] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.633910] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.638001] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.642099] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.646214] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.650345] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.654446] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.658560] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.662677] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.666779] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.670904] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.674977] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.679086] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.683176] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.687275] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.691371] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.695481] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.699575] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.703670] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.707759] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.711859] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.715962] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.720063] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.724155] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.728252] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.732352] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.736448] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.740543] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.744647] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.748743] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.752838] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.756949] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.761046] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.765140] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.769237] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.773336] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.777432] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.781529] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.785635] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.789736] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.793831] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.793923] random: nonblocking pool is initialized
[    4.797928] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.802032] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.806127] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.810312] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.814383] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.818447] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.822544] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.826657] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.830763] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.834872] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.838965] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.843057] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.847164] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.851261] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.855353] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.859462] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.863555] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.867647] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.871743] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.875834] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.879926] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.884024] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.888124] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.892233] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.896343] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.900441] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    4.901103] tegradc 15210000.nvdisplay: hdmi: edid read failed
[    4.901159] tegradc 15210000.nvdisplay: hdmi: using fallback edid

hardware wise, differences are that we are using ESD protection IC with part no - tpd12s521 & hdmi 1.4 port is used in custom carrier card.

please find the attached schematic.

[    4.901103] tegradc 15210000.nvdisplay: hdmi: edid read failed
[    4.901159] tegradc 15210000.nvdisplay: hdmi: using fallback edid

can I update default edid in source to the edid data im getting on devkit ?? if yes how can i update please let me know !!

thank you !!

It looks like no level shift on DDC and HPD lines, please refer to OEM DG and dev kit reference schematic in DLC to make design.

Hi,

tpd12s521 will work as ESD as well as level shifter also.

please note we are getting proper edid,hdmi-0 configuration in xorg.log,tegradc log in dmesg log after doing rework on i2c lane. which are same as devkit

now logs are exactly same as devkit log.

hardware design is also same only difference is that we have hdmi 1.4 where as on Devkit it is hdmi 2.0

is there any way to downgrade from 2.0 to 1.4 from software side ???

hdmi 2.0 driver is compatible with hdmi1.4. I don’t get the point here to do the downgrade.

1 Like

okey thanks for the information…

whenever i connect or disconnect hdmi cable, hdmi hot-plug status is not toggling.

cat /sys/kernel/debug/tegra_hdmi/hotplug

do u have any idea about this issue ??

  1. According to previous discussion, your hardware design does not match our OEM design guide. Could you confirm that first?

  2. Also, what does that mean you have a hdmi1.4 port here? Sorry in advanced I am not a hardware guy, so need some explanations.

  3. Even on devkit, the node “/sys/kernel/debug/tegra_hdmi/hotplug” seems not give the hpd state. Thus, to debug your issue from sw, I think dumping dmesg should be sufficient. Hotplug should trigger the driver to print log in dmesg. If it does not print, then I would think it is a hardware issue.

  1. we have followed OEM design guide, attached schematic.

  2. hdmi 1.4 port means, in our design the hdmi lines coming out from tx2i module are connected to hdmi 1.4 connector port while in case of devkit those lines are connected to hdmi 2.0 connector port.

  3. we tested the hot-plug detection status from “/sys/kernel/debug/tegra_hdmi/hotplug” on devkit by removing and connecting the hdmi cable & we observed the toggling of states while on our carrier card this behavior not observed.

Please find logs.
tx2i_carrier_card.txt (67.4 KB)
jetson_tx2_devkit.txt (83.2 KB)

Did you measure the HPD signal close to HDMI connector? Is there a level change on it? If you can see the level change, is it same high/low to devkit? If not, you need to change the value of hotplug detection in dts.

Also I don’t see the Rpd and beads to ground on data lines in your schematic.

HPD are getting level change when connected or disconnected on both i.e same behavior as devkit.

Rpd & beads are taken care in back-plane board.

Did you manage to solve this? Im used a similar design with TPD12S016 and got the same problem as you.

Can you share how did you solve it?

Thanks!

I’d like to know as well. Should an HDMI 1.4 interface IC be able to work for HDMI 2.0?

UPDATE: I found that the HPD was active low, and if we just used TPD12S016 as is, it performs logic level translation perfectly but it is active high. I did some rework to make it active low and it works now.