Jetson Xavier L4T 34.1 Kernel 5.10

I am using the latest Linux for tegra 34.1 version on the Xavier NX with custom carrier board. I have some issues with the HDMI. I am using a single HDMI interface which does not have any differences (exactly nvidia’s) and no other display interfaces. I have not done any device tree related changes.
When I grep hdmi from the dmesg logs it show failed to read edid with the below errors.
@ubuntu:~$ dmesg | grep hdmi
[ 7.378454] tegradc 15200000.display: hdmi: can’t get adpater for ddc bus 3
[ 7.848916] tegradc 15200000.display: hdmi: invalid prod list prod_list_hdmi_board
[ 7.861959] tegradc 15200000.display: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[ 8.136984] tegradc 15200000.display: hdmi: tmds rate:25200K prod-setting:prod_c_hdmi_0m_54m
[ 8.173090] tegradc 15200000.display: hdmi: get YCC quant from EDID.
[ 26.500433] tegradc 15200000.display: hdmi: edid read failed
[ 26.501236] tegradc 15200000.display: hdmi: using fallback edid
[ 26.633090] tegradc 15200000.display: hdmi: tmds rate:74250K prod-setting:prod_c_hdmi_54m_111m
[ 26.634942] tegradc 15200000.display: hdmi: get YCC quant from EDID.
[ 26.651932] tegradc 15200000.display: hdmi: plugged

I could see backlight on the display when HDMI is connected and nothing else appears. I have used multiple display monitors and HDMI cables as well. With the older Jetpack versions with same configurations HDMI is up and working.

Was that working fine on k4.9 , jetpack4.x version? If you didn’t test it, maybe you can try it.
It would be better to use a stable version to test your hardware. 34.x is just developer preview.

And It is unlikely a custom board no need any device tree change.

Yes it was working on the earlier L4T releases 32.x on the same setup.

Other dmesg log from display.
@ubuntu:~$ dmesg | grep display
[ 1.175883] tegradccommon 15200000.display-hub: Nvhost Channel map failed
[ 7.304063] tegradccommon 15200000.display-hub: host1x channel mapped
[ 7.304381] tegradccommon 15200000.display-hub: dc_common syncpt # 1 allocated
[ 7.304714] tegradccommon 15200000.display-hub: dma mapping done
[ 7.306926] tegradc 15200000.display: Adding to iommu group 26
[ 7.308300] tegradc 15200000.display: disp0 connected to head0->sor1
[ 7.308922] tegradc 15200000.display: DT parsed successfully
[ 7.309228] tegradc 15200000.display: Display dc.(ptrval) registered with id=0
[ 7.312706] tegradc 15210000.display: Adding to iommu group 26
[ 7.359504] tegradc 15200000.display: vblank syncpt # 8 for dc 0
[ 7.365173] tegradc 15200000.display: vpulse3 syncpt # 9 for dc 0
[ 7.378454] tegradc 15200000.display: hdmi: can’t get adpater for ddc bus 3
[ 7.400069] tegradc 15200000.display: out->type:1 out_ops->init err = -517
[ 7.407766] tegradc 15210000.display: disp0 connected to head1->sor
[ 7.418929] tegradc 15210000.display: parse_dp_settings: No dp-lt-settings node
[ 7.431646] tegradc 15210000.display: DT parsed successfully
[ 7.447517] tegradc 15210000.display: Display dc.(ptrval) registered with id=0
[ 7.484050] tegradc 15210000.display: vblank syncpt # 11 for dc 1
[ 7.500254] tegradc 15210000.display: vpulse3 syncpt # 12 for dc 1
[ 7.536620] tegradc 15210000.display: probed
[ 7.538310] tegradc 15210000.display: fb registered
[ 7.609588] tegradc 15210000.display: blank - powerdown
[ 7.804248] tegradc 15200000.display: disp1 connected to head0->sor1
[ 7.804594] tegradc 15200000.display: DT parsed successfully
[ 7.809301] tegradc 15200000.display: Display dc.(ptrval) registered with id=1
[ 7.819290] tegradc 15200000.display: vblank syncpt # 13 for dc 0
[ 7.835335] tegradc 15200000.display: vpulse3 syncpt # 14 for dc 0
[ 7.848916] tegradc 15200000.display: hdmi: invalid prod list prod_list_hdmi_board
[ 7.861959] tegradc 15200000.display: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[ 8.074543] tegradc 15200000.display: probed
[ 8.079894] tegradc 15200000.display: fb registered
[ 8.136984] tegradc 15200000.display: hdmi: tmds rate:25200K prod-setting:prod_c_hdmi_0m_54m
[ 8.173090] tegradc 15200000.display: hdmi: get YCC quant from EDID.
[ 26.500433] tegradc 15200000.display: hdmi: edid read failed
[ 26.501236] tegradc 15200000.display: hdmi: using fallback edid
[ 26.502284] tegradc 15200000.display: blank - powerdown
[ 26.620770] tegradc 15200000.display: unblank
[ 26.633090] tegradc 15200000.display: hdmi: tmds rate:74250K prod-setting:prod_c_hdmi_54m_111m
[ 26.634942] tegradc 15200000.display: hdmi: get YCC quant from EDID.
[ 26.651845] tegradc 15200000.display: sync windows ret = 247
[ 26.651932] tegradc 15200000.display: hdmi: plugged
[ 32.011399] tegradc 15210000.display: blank - powerdown

Please just attach the full dmesg as a text file. Do not parse anything by yourself.

Attaching complete dmesg log.
dmesg.txt (89.8 KB)

Are your sure your board can read edid in jp4.x? But not relying on the fallback edid?

Yes with older jetpack 4.x, we were able to read actual edid.

Could you go to the driver code kernel/nvidia/drivers/video/tegra/dc/hdmi2.0.c

and check why the i2c_adap = i2c_get_adapter(dc->out->ddc_bus) cannot get the adapter?

You can compare the ddc_bus info on rel-32 and rel-34 and see if the info are different.

I would like to emphasize that last post matters a lot because the DDC wire uses i2c, and even if the rest of HDMI is set up correctly, if something changed in i2c, then DDC might still fail even if the rest remains unchanged. One example might be an i2c rail not being powered.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.