Tegra-i2c 31c0000.i2c: no acknowledge from address 0x54

When the monitor is off, I get a ton of errors about i2c and HDMI.

Would there be a way to eliminate these errors?

All of these repeat every 5 seconds. I put them in a separate log file at least so as not to clutter my syslog, but I like to keep my Jetson AGX Xaview running without the monitor (so no HDMI signal…)

Jun  5 11:09:16 ve1 kernel: [166526.291345] tegra-i2c 31c0000.i2c: no acknowledge from address 0x54
Jun  5 11:09:16 ve1 kernel: [166526.291612] Switching i2c_ddc sclk rate: from 100000, to 50000
Jun  5 11:09:16 ve1 kernel: [166526.294307] tegra-i2c 31c0000.i2c: no acknowledge from address 0x54
Jun  5 11:09:16 ve1 kernel: [166526.294496] Switching i2c_ddc sclk rate: from 50000, to 25000
Jun  5 11:09:16 ve1 kernel: [166526.296531] tegra-i2c 31c0000.i2c: no acknowledge from address 0x54
Jun  5 11:09:16 ve1 kernel: [166526.296720] Switching i2c_ddc sclk rate: from 25000, to 12500
Jun  5 11:09:16 ve1 kernel: [166526.298500] tegra-i2c 31c0000.i2c: no acknowledge from address 0x54
Jun  5 11:09:16 ve1 kernel: [166526.298698] Switching i2c_ddc sclk rate: from 12500, to 6250
Jun  5 11:09:16 ve1 kernel: [166526.301575] tegra-i2c 31c0000.i2c: no acknowledge from address 0x54
Jun  5 11:09:16 ve1 kernel: [166526.301756] Cannot change the i2c_ddc rate, the rate:3125 cannotbe below minimum rate:5000 or above maxim
Jun  5 11:09:16 ve1 kernel: [166526.301943] Switching i2c_ddc sclk rate: from 6250, to 100000
Jun  5 11:09:16 ve1 kernel: [166526.302098] tegradc 15200000.nvdisplay: hdmi: scdc scrambling status is reset, trying to reconfigure.
Jun  5 11:09:16 ve1 kernel: [166526.306264] tegra-i2c 31c0000.i2c: no acknowledge from address 0x54
Jun  5 11:09:16 ve1 kernel: [166526.310199] tegra-i2c 31c0000.i2c: no acknowledge from address 0x54

I don’t know enough to answer, but I find it odd that the address is 0x54 instead of 0x50 if it is only when you turn off an HDMI monitor. Unless you have customized I would think video would complain about EDID and 0x50. Before and after the issue do you see EDID data? Does the EDID change? See:

sudo -s
egrep -H '*' `find /sys -name edid`
exit

Normally the i2c query to the monitor is actually powered by the host (the Jetson). Thus, if a host PC has a monitor plugged in to HDMI, and the monitor is not powered up, the host can still configure for the monitor since the monitor is not required for the i2c to work. However, if for some reason a monitor self powers the i2c when on, and if your HDMI fails to power i2c, then something like this could conceivably happen (I’ve never heard of it though). This would have nothing to do with EDID use 0x54 instead of 0x50, but at least you can test if the i2c query of the monitor works via the ‘edid’ file.

If this isn’t EDID, then you have to look elsewhere. If there really is address 0x54 associated with EDID, then I’m guessing you have some sort of customization or device tree modification.