HDMI Hot Plug on dev kit board

Hello!

I’m trying to enable hot-plug for HDMI on TX2 (4GB) on development kit board.
I’m using Jetpack 4.5.1, L4T R32.5.
HDMI is working fine (I can see the image on the monitor), but the hot-plug doesn’t:

dino@dino-desktop:~$ sudo cat /sys/kernel/debug/tegra_hdmi/hotplug
hdmi hpd state: 0

_
_
_
_
_
_
_
_

So, before plugging in the hdmi monitor I have:

dino@dino-desktop:~$ dmesg |grep tegradc
[    1.064598] tegradccommon 15200000.dc_common: host1x channel mapped
[    1.064606] tegradccommon 15200000.dc_common: dc_common syncpt # 1 allocated
[    1.064647] tegradccommon 15200000.dc_common: dma mapping done
[    1.065132] tegradc 15210000.nvdisplay: disp0 connected to head1->/host1x/sor1
[    1.065252] tegradc 15210000.nvdisplay: DT parsed successfully
[    1.065272] tegradc 15210000.nvdisplay: Display dc.ffffff800b650000 registered with id=0
[    1.071062] tegradc 15210000.nvdisplay: vblank syncpt # 8 for dc 1
[    1.071068] tegradc 15210000.nvdisplay: vpulse3 syncpt # 9 for dc 1
[    1.077042] tegradc 15210000.nvdisplay: hdmi: invalid prod list prod_list_hdmi_board
[    1.077047] tegradc 15210000.nvdisplay: hdmi: tegra_hdmi_tmds_range_read(bd) failed
[    1.079799] tegradc 15210000.nvdisplay: probed
[    1.080168] tegradc 15210000.nvdisplay: fb registered
[    5.049444] tegradc 15210000.nvdisplay: blank - powerdown

I enabled ModeDebug in xorg:

dino@dino-desktop:~$ cat /var/log/Xorg.0.log
[     4.728] (--) Log file renamed from "/var/log/Xorg.pid-5899.log" to "/var/log/Xorg.0.log"
[     4.730] 
X.Org X Server 1.19.6
Release Date: 2017-12-20
[     4.730] X Protocol Version 11, Revision 0
[     4.730] Build Operating System: Linux 4.15.0-109-generic aarch64 Ubuntu
[     4.730] Current Operating System: Linux dino-desktop 4.9.201-tegra #1 SMP PREEMPT Fri Feb 19 08:42:04 PST 2021 aarch64
[     4.730] Kernel command line: console=ttyS0,115200 androidboot.presilicon=true firmware_class.path=/etc/firmware root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x1772e0000 gpt rootfs.slot_suffix= usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2031647.1 vpr_resize bl_prof_dataptr=0x10000@0x175840000 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2 
[     4.730] Build Date: 15 September 2020  07:46:13AM
[     4.730] xorg-server 2:1.19.6-1ubuntu4.7 (For technical support please see http://www.ubuntu.com/support) 
[     4.730] Current version of pixman: 0.34.0
[     4.730] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[     4.730] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[     4.731] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Aug 16 12:41:47 2021
[     4.737] (==) Using config file: "/etc/X11/xorg.conf"
[     4.737] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[     4.745] (==) No Layout section.  Using the first Screen section.
[     4.745] (==) No screen section available. Using defaults.
[     4.745] (**) |-->Screen "Default Screen Section" (0)
[     4.745] (**) |   |-->Monitor "<default monitor>"
[     4.745] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[     4.745] (**) |   |-->Device "Tegra0"
[     4.745] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[     4.745] (==) Automatically adding devices
[     4.745] (==) Automatically enabling devices
[     4.745] (==) Automatically adding GPU devices
[     4.745] (==) Automatically binding GPU devices
[     4.745] (==) Max clients allowed: 256, resource mask: 0x1fffff
[     4.750] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[     4.750] 	Entry deleted from font path.
[     4.750] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[     4.750] 	Entry deleted from font path.
[     4.750] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[     4.750] 	Entry deleted from font path.
[     4.751] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[     4.751] 	Entry deleted from font path.
[     4.751] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[     4.751] 	Entry deleted from font path.
[     4.751] (==) FontPath set to:
	/usr/share/fonts/X11/misc,
	/usr/share/fonts/X11/Type1,
	built-ins
[     4.751] (==) ModulePath set to "/usr/lib/xorg/modules"
[     4.751] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[     4.751] (II) Loader magic: 0x5558115010
[     4.751] (II) Module ABI versions:
[     4.751] 	X.Org ANSI C Emulation: 0.4
[     4.751] 	X.Org Video Driver: 23.0
[     4.751] 	X.Org XInput driver : 24.1
[     4.751] 	X.Org Server Extension : 10.0
[     4.756] (++) using VT number 1

[     4.761] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
[     4.761] (II) no primary bus or device found
[     4.761] (WW) "dri" will not be loaded unless you've specified it to be loaded elsewhere.
[     4.761] (II) "glx" will be loaded by default.
[     4.761] (II) LoadModule: "extmod"
[     4.762] (II) Module "extmod" already built-in
[     4.762] (II) LoadModule: "glx"
[     4.764] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     4.780] (II) Module glx: vendor="X.Org Foundation"
[     4.780] 	compiled for 1.19.6, module version = 1.0.0
[     4.780] 	ABI class: X.Org Server Extension, version 10.0
[     4.780] (II) LoadModule: "nvidia"
[     4.780] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[     4.794] (II) Module nvidia: vendor="NVIDIA Corporation"
[     4.794] 	compiled for 4.0.2, module version = 1.0.0
[     4.794] 	Module class: X.Org Video Driver
[     4.796] (II) NVIDIA dlloader X Driver  32.5.1  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-5285-d7000)  Fri Feb 19 08:41:46 PST 2021
[     4.796] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[     4.796] (WW) Falling back to old probe method for NVIDIA
[     4.796] (II) Loading sub module "fb"
[     4.796] (II) LoadModule: "fb"
[     4.797] (II) Loading /usr/lib/xorg/modules/libfb.so
[     4.798] (II) Module fb: vendor="X.Org Foundation"
[     4.798] 	compiled for 1.19.6, module version = 1.0.0
[     4.798] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     4.798] (II) Loading sub module "wfb"
[     4.798] (II) LoadModule: "wfb"
[     4.798] (II) Loading /usr/lib/xorg/modules/libwfb.so
[     4.800] (II) Module wfb: vendor="X.Org Foundation"
[     4.800] 	compiled for 1.19.6, module version = 1.0.0
[     4.800] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     4.800] (II) Loading sub module "ramdac"
[     4.800] (II) LoadModule: "ramdac"
[     4.800] (II) Module "ramdac" already built-in
[     4.801] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[     4.801] (II) NVIDIA(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[     4.801] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[     4.801] (==) NVIDIA(0): RGB weight 888
[     4.801] (==) NVIDIA(0): Default visual is TrueColor
[     4.801] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[     4.801] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[     4.801] (**) NVIDIA(0): Option "ModeDebug"
[     4.801] (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration" "true"
[     4.802] (**) NVIDIA(0): Enabling 2D acceleration
[     4.802] (II) Loading sub module "glxserver_nvidia"
[     4.802] (II) LoadModule: "glxserver_nvidia"
[     4.802] (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
[     4.875] (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
[     4.876] 	compiled for 4.0.2, module version = 1.0.0
[     4.876] 	Module class: X.Org Server Extension
[     4.876] (II) NVIDIA GLX Module  32.5.1  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-5285-d7000)  Fri Feb 19 08:40:56 PST 2021
[     4.887] (--) NVIDIA(0): Valid display device(s) on GPU-0 at SoC
[     4.887] (--) NVIDIA(0):     DFP-0
[     4.887] (II) NVIDIA(0): NVIDIA GPU NVIDIA Tegra X2 (nvgpu) (GP10B) at SoC (GPU-0)
[     4.887] (--) NVIDIA(0): Memory: 3924536 kBytes
[     4.887] (--) NVIDIA(0): VideoBIOS: 
[     4.887] (==) NVIDIA(0): 
[     4.887] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[     4.887] (==) NVIDIA(0):     will be used as the requested mode.
[     4.887] (==) NVIDIA(0): 
[     4.887] (--) NVIDIA(0): No enabled display devices found; starting anyway because
[     4.887] (--) NVIDIA(0):     AllowEmptyInitialConfiguration is enabled
[     4.887] (II) NVIDIA(0): Validated MetaModes:
[     4.887] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480
[     4.887] (WW) NVIDIA(0): Unable to get display device for DPI computation.
[     4.887] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
[     4.887] (--) Depth 24 pixmap format is 32 bpp
[     4.887] (II) NVIDIA: Reserving 24576.00 MB of virtual memory for indirect memory
[     4.888] (II) NVIDIA:     access.
[     4.891] (EE) NVIDIA(0): Failed to allocate NVIDIA Error Handler
[     4.891] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
[     4.891] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
[     4.891] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
[     4.892] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
[     4.892] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
[     4.892] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
[     4.892] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
[     4.892] (II) NVIDIA(0):     Config Options in the README.
[     4.943] (II) NVIDIA(0): Setting mode "NULL"
[     4.948] (==) NVIDIA(0): Disabling shared memory pixmaps
[     4.948] (==) NVIDIA(0): Backing store enabled
[     4.948] (==) NVIDIA(0): Silken mouse enabled
[     4.949] (==) NVIDIA(0): DPMS enabled
[     4.949] (II) Loading sub module "dri2"
[     4.949] (II) LoadModule: "dri2"
[     4.949] (II) Module "dri2" already built-in
[     4.949] (II) NVIDIA(0): [DRI2] Setup complete
[     4.949] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
[     4.949] (--) RandR disabled
[     4.954] (II) SELinux: Disabled on system
[     4.955] (II) Initializing extension GLX
[     4.955] (II) Indirect GLX disabled.
[     5.071] (II) config/udev: Adding input device tegra-hda HDMI/DP,pcm=3 (/dev/input/event0)
[     5.071] (II) No input driver specified, ignoring this device.
[     5.071] (II) This device may have been added with another device file.
[     5.072] (II) config/udev: Adding input device tegra-hda HDMI/DP,pcm=7 (/dev/input/event1)
[     5.072] (II) No input driver specified, ignoring this device.
[     5.072] (II) This device may have been added with another device file.
[     5.073] (II) config/udev: Adding input device Dell Dell USB Keyboard (/dev/input/event3)
[     5.073] (**) Dell Dell USB Keyboard: Applying InputClass "libinput keyboard catchall"
[     5.073] (II) LoadModule: "libinput"
[     5.076] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[     5.094] (II) Module libinput: vendor="X.Org Foundation"
[     5.094] 	compiled for 1.19.6, module version = 0.27.1
[     5.094] 	Module class: X.Org XInput Driver
[     5.094] 	ABI class: X.Org XInput driver, version 24.1
[     5.094] (II) Using input driver 'libinput' for 'Dell Dell USB Keyboard'
[     5.101] (II) systemd-logind: got fd for /dev/input/event3 13:67 fd 31 paused 0
[     5.102] (**) Dell Dell USB Keyboard: always reports core events
[     5.102] (**) Option "Device" "/dev/input/event3"
[     5.102] (**) Option "_source" "server/udev"
[     5.103] (II) event3  - Dell Dell USB Keyboard: is tagged by udev as: Keyboard
[     5.103] (II) event3  - Dell Dell USB Keyboard: device is a keyboard
[     5.103] (II) event3  - Dell Dell USB Keyboard: device removed
[     5.103] (**) Option "config_info" "udev:/sys/devices/3530000.xhci/usb1/1-2/1-2.1/1-2.1:1.0/0003:413C:2010.0001/input/input3/event3"
[     5.103] (II) XINPUT: Adding extended input device "Dell Dell USB Keyboard" (type: KEYBOARD, id 6)
[     5.103] (**) Option "xkb_model" "pc105"
[     5.103] (**) Option "xkb_layout" "us"
[     5.105] (II) event3  - Dell Dell USB Keyboard: is tagged by udev as: Keyboard
[     5.105] (II) event3  - Dell Dell USB Keyboard: device is a keyboard
[     5.106] (II) config/udev: Adding input device Dell Dell USB Keyboard (/dev/input/event4)
[     5.106] (**) Dell Dell USB Keyboard: Applying InputClass "libinput keyboard catchall"
[     5.107] (II) Using input driver 'libinput' for 'Dell Dell USB Keyboard'
[     5.109] (II) systemd-logind: got fd for /dev/input/event4 13:68 fd 34 paused 0
[     5.110] (**) Dell Dell USB Keyboard: always reports core events
[     5.110] (**) Option "Device" "/dev/input/event4"
[     5.110] (**) Option "_source" "server/udev"
[     5.111] (II) event4  - Dell Dell USB Keyboard: is tagged by udev as: Keyboard
[     5.111] (II) event4  - Dell Dell USB Keyboard: device is a keyboard
[     5.111] (II) event4  - Dell Dell USB Keyboard: device removed
[     5.111] (**) Option "config_info" "udev:/sys/devices/3530000.xhci/usb1/1-2/1-2.1/1-2.1:1.1/0003:413C:2010.0002/input/input4/event4"
[     5.111] (II) XINPUT: Adding extended input device "Dell Dell USB Keyboard" (type: KEYBOARD, id 7)
[     5.111] (**) Option "xkb_model" "pc105"
[     5.111] (**) Option "xkb_layout" "us"
[     5.112] (II) event4  - Dell Dell USB Keyboard: is tagged by udev as: Keyboard
[     5.112] (II) event4  - Dell Dell USB Keyboard: device is a keyboard
[     5.114] (II) config/udev: Adding input device Lenovo USB Laser Mouse (/dev/input/event5)
[     5.114] (**) Lenovo USB Laser Mouse: Applying InputClass "libinput pointer catchall"
[     5.114] (II) Using input driver 'libinput' for 'Lenovo USB Laser Mouse'
[     5.172] (II) systemd-logind: got fd for /dev/input/event5 13:69 fd 35 paused 0
[     5.172] (**) Lenovo USB Laser Mouse: always reports core events
[     5.172] (**) Option "Device" "/dev/input/event5"
[     5.172] (**) Option "_source" "server/udev"
[     5.173] (II) event5  - Lenovo USB Laser Mouse: is tagged by udev as: Mouse
[     5.174] (II) event5  - Lenovo USB Laser Mouse: device set to 1600 DPI
[     5.174] (II) event5  - Lenovo USB Laser Mouse: device is a pointer
[     5.174] (II) event5  - Lenovo USB Laser Mouse: device removed
[     5.174] (**) Option "config_info" "udev:/sys/devices/3530000.xhci/usb1/1-2/1-2.3/1-2.3:1.0/0003:17EF:6045.0003/input/input5/event5"
[     5.174] (II) XINPUT: Adding extended input device "Lenovo USB Laser Mouse" (type: MOUSE, id 8)
[     5.174] (**) Option "AccelerationScheme" "none"
[     5.174] (**) Lenovo USB Laser Mouse: (accel) selected scheme none/0
[     5.174] (**) Lenovo USB Laser Mouse: (accel) acceleration factor: 2.000
[     5.174] (**) Lenovo USB Laser Mouse: (accel) acceleration threshold: 4
[     5.175] (II) event5  - Lenovo USB Laser Mouse: is tagged by udev as: Mouse
[     5.175] (II) event5  - Lenovo USB Laser Mouse: device set to 1600 DPI
[     5.175] (II) event5  - Lenovo USB Laser Mouse: device is a pointer
[     5.177] (II) config/udev: Adding input device Lenovo USB Laser Mouse (/dev/input/mouse0)
[     5.177] (II) No input driver specified, ignoring this device.
[     5.177] (II) This device may have been added with another device file.
[     5.178] (II) config/udev: Adding input device gpio-keys (/dev/input/event2)
[     5.178] (**) gpio-keys: Applying InputClass "libinput keyboard catchall"
[     5.178] (II) Using input driver 'libinput' for 'gpio-keys'
[     5.182] (II) systemd-logind: got fd for /dev/input/event2 13:66 fd 36 paused 0
[     5.182] (**) gpio-keys: always reports core events
[     5.182] (**) Option "Device" "/dev/input/event2"
[     5.182] (**) Option "_source" "server/udev"
[     5.183] (II) event2  - gpio-keys: is tagged by udev as: Keyboard
[     5.183] (II) event2  - gpio-keys: device is a keyboard
[     5.183] (II) event2  - gpio-keys: device removed
[     5.183] (**) Option "config_info" "udev:/sys/devices/gpio-keys/input/input2/event2"
[     5.183] (II) XINPUT: Adding extended input device "gpio-keys" (type: KEYBOARD, id 9)
[     5.183] (**) Option "xkb_model" "pc105"
[     5.183] (**) Option "xkb_layout" "us"
[     5.184] (II) event2  - gpio-keys: is tagged by udev as: Keyboard
[     5.184] (II) event2  - gpio-keys: device is a keyboard
[     5.198] (II) config/udev: removing device Dell Dell USB Keyboard
[     5.198] (**) Option "fd" "34"
[     5.199] (II) event4  - Dell Dell USB Keyboard: device removed
[     5.199] (II) UnloadModule: "libinput"
[     5.199] (II) systemd-logind: releasing fd for 13:68
[     5.225] (II) config/udev: Adding input device Dell Dell USB Keyboard (/dev/input/event4)
[     5.225] (**) Dell Dell USB Keyboard: Applying InputClass "libinput keyboard catchall"
[     5.225] (II) Using input driver 'libinput' for 'Dell Dell USB Keyboard'
[     5.227] (II) systemd-logind: got fd for /dev/input/event4 13:68 fd 8 paused 0
[     5.227] (**) Dell Dell USB Keyboard: always reports core events
[     5.227] (**) Option "Device" "/dev/input/event4"
[     5.227] (**) Option "_source" "server/udev"
[     5.228] (II) event4  - Dell Dell USB Keyboard: is tagged by udev as: Keyboard
[     5.228] (II) event4  - Dell Dell USB Keyboard: device is a keyboard
[     5.228] (II) event4  - Dell Dell USB Keyboard: device removed
[     5.228] (**) Option "config_info" "udev:/sys/devices/3530000.xhci/usb1/1-2/1-2.1/1-2.1:1.1/0003:413C:2010.0002/input/input4/event4"
[     5.228] (II) XINPUT: Adding extended input device "Dell Dell USB Keyboard" (type: KEYBOARD, id 7)
[     5.228] (**) Option "xkb_model" "pc105"
[     5.228] (**) Option "xkb_layout" "us"
[     5.228] (WW) Option "xkb_variant" requires a string value
[     5.228] (WW) Option "xkb_options" requires a string value
[     5.229] (II) event4  - Dell Dell USB Keyboard: is tagged by udev as: Keyboard
[     5.230] (II) event4  - Dell Dell USB Keyboard: device is a keyboard
[     5.230] (II) config/udev: removing device Lenovo USB Laser Mouse
[     5.230] (**) Option "fd" "35"
[     5.230] (II) event5  - Lenovo USB Laser Mouse: device removed
[     5.230] (II) UnloadModule: "libinput"
[     5.230] (II) systemd-logind: releasing fd for 13:69
[     5.273] (II) config/udev: Adding input device Lenovo USB Laser Mouse (/dev/input/event5)
[     5.273] (**) Lenovo USB Laser Mouse: Applying InputClass "libinput pointer catchall"
[     5.273] (II) Using input driver 'libinput' for 'Lenovo USB Laser Mouse'
[     5.333] (II) systemd-logind: got fd for /dev/input/event5 13:69 fd 33 paused 0
[     5.334] (**) Lenovo USB Laser Mouse: always reports core events
[     5.334] (**) Option "Device" "/dev/input/event5"
[     5.334] (**) Option "_source" "server/udev"
[     5.335] (II) event5  - Lenovo USB Laser Mouse: is tagged by udev as: Mouse
[     5.335] (II) event5  - Lenovo USB Laser Mouse: device set to 1600 DPI
[     5.335] (II) event5  - Lenovo USB Laser Mouse: device is a pointer
[     5.335] (II) event5  - Lenovo USB Laser Mouse: device removed
[     5.335] (**) Option "config_info" "udev:/sys/devices/3530000.xhci/usb1/1-2/1-2.3/1-2.3:1.0/0003:17EF:6045.0003/input/input5/event5"
[     5.335] (II) XINPUT: Adding extended input device "Lenovo USB Laser Mouse" (type: MOUSE, id 8)
[     5.335] (**) Option "AccelerationScheme" "none"
[     5.335] (**) Lenovo USB Laser Mouse: (accel) selected scheme none/0
[     5.335] (**) Lenovo USB Laser Mouse: (accel) acceleration factor: 2.000
[     5.335] (**) Lenovo USB Laser Mouse: (accel) acceleration threshold: 4
[     5.336] (II) event5  - Lenovo USB Laser Mouse: is tagged by udev as: Mouse
[     5.336] (II) event5  - Lenovo USB Laser Mouse: device set to 1600 DPI
[     5.336] (II) event5  - Lenovo USB Laser Mouse: device is a pointer
[     5.337] (II) config/udev: removing device gpio-keys
[     5.337] (**) Option "fd" "36"
[     5.337] (II) event2  - gpio-keys: device removed
[     5.337] (II) UnloadModule: "libinput"
[     5.337] (II) systemd-logind: releasing fd for 13:66
[     5.344] (II) config/udev: Adding input device gpio-keys (/dev/input/event2)
[     5.344] (**) gpio-keys: Applying InputClass "libinput keyboard catchall"
[     5.344] (II) Using input driver 'libinput' for 'gpio-keys'
[     5.346] (II) systemd-logind: got fd for /dev/input/event2 13:66 fd 34 paused 0
[     5.346] (**) gpio-keys: always reports core events
[     5.347] (**) Option "Device" "/dev/input/event2"
[     5.347] (**) Option "_source" "server/udev"
[     5.347] (II) event2  - gpio-keys: is tagged by udev as: Keyboard
[     5.347] (II) event2  - gpio-keys: device is a keyboard
[     5.347] (II) event2  - gpio-keys: device removed
[     5.347] (**) Option "config_info" "udev:/sys/devices/gpio-keys/input/input2/event2"
[     5.348] (II) XINPUT: Adding extended input device "gpio-keys" (type: KEYBOARD, id 9)
[     5.348] (**) Option "xkb_model" "pc105"
[     5.348] (**) Option "xkb_layout" "us"
[     5.348] (WW) Option "xkb_variant" requires a string value
[     5.348] (WW) Option "xkb_options" requires a string value
[     5.349] (II) event2  - gpio-keys: is tagged by udev as: Keyboard
[     5.349] (II) event2  - gpio-keys: device is a keyboard

And:

dino@dino-desktop:~$ sudo cat /sys/kernel/debug/tegra_hdmi/hotplug
hdmi hpd state: 0

_
_
_
_
_
_
_
_

After plugging in the hdmi monitor the display works but I still get:

dino@dino-desktop:~$ sudo cat /sys/kernel/debug/tegra_hdmi/hotplug
hdmi hpd state: 0

And:

dino@dino-desktop:~$ dmesg --follow
[  195.159368] edid invalid
[  195.319969] tegradc 15210000.nvdisplay: blank - powerdown
[  195.340277] tegradc 15210000.nvdisplay: unblank
[  195.359388] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[  195.366205] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[  195.366379] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[  195.376705] Parent Clock set for DC plld2
[  195.382934] tegradc 15210000.nvdisplay: hdmi: tmds rate:148500K prod-setting:prod_c_hdmi_111m_223m
[  195.387330] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  195.424582] extcon-disp-state external-connection:disp-state: cable 47 state 1
[  195.424590] Extcon AUX1(HDMI) enable
[  195.429049] extcon-disp-state external-connection:disp-state: cable 51 state 1
[  195.429052] Extcon HDMI: HPD enabled
[  195.429075] tegradc 15210000.nvdisplay: hdmi: plugged
[  195.722708] tegradc 15210000.nvdisplay: blank - powerdown
[  195.791184] extcon-disp-state external-connection:disp-state: cable 47 state 0
[  195.791187] Extcon AUX1(HDMI) disable
[  195.812121] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
[  195.812227] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[  195.813010] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
[  195.856686] tegradc 15210000.nvdisplay: blank - powerdown
[  195.856698] tegradc 15210000.nvdisplay: unblank
[  195.857538] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[  195.857634] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[  195.857718] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[  195.861207] Parent Clock set for DC plld2
[  195.867886] tegradc 15210000.nvdisplay: hdmi: tmds rate:148500K prod-setting:prod_c_hdmi_111m_223m
[  195.869410] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  195.907261] extcon-disp-state external-connection:disp-state: cable 47 state 1
[  195.907263] Extcon AUX1(HDMI) enable
[  195.907386] tegradc 15210000.nvdisplay: unblank

And:

dino@dino-desktop:~$ sudo cat `sudo find /sys -name edid`
 00 ff ff ff ff ff ff 00 09 d1 ec 78 01 01 00 00
 1d 1e 01 03 80 3c 22 78 2e ba 25 a3 56 50 a0 28
 0e 50 54 a5 6b 80 d1 c0 b3 00 a9 c0 81 80 81 00
 81 c0 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
 45 00 56 50 21 00 00 1e 00 00 00 ff 00 45 54 4e
 37 4c 30 37 31 36 35 53 4c 30 00 00 00 fd 00 32
 4c 1e 53 15 00 0a 20 20 20 20 20 20 00 00 00 fc
 00 42 65 6e 51 20 47 4c 32 37 38 30 0a 20 01 ae
 02 03 24 f1 4f 90 1f 04 13 03 12 02 11 01 14 06
 07 15 16 05 23 09 07 07 83 01 00 00 67 03 0c 00
 10 00 08 2a 2a 44 80 a0 70 38 27 40 30 20 35 00
 56 50 21 00 00 1a 02 3a 80 18 71 38 2d 40 58 2c
 45 00 56 50 21 00 00 1f 01 1d 80 18 71 1c 16 20
 58 2c 25 00 56 50 21 00 00 9f 01 1d 00 72 51 d0
 1e 20 6e 28 55 00 56 50 21 00 00 1e 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe

And:
xorg_log.txt (209.6 KB)

_
_
_
_
_
_
_
_

I also tried changing the device tree as described here (https://forums.developer.nvidia.com/t/jetson-tx2-custom-carrier-hdmi-non-inverting-hot-plug-detect/68525/4):

		sor1 {
			status = "okay";
			nvidia,xbar-ctrl = <0 1 2 3 4>;
			nvidia,hpd-gpio = <&tegra_main_gpio TEGRA_MAIN_GPIO(P, 1) GPIO_ACTIVE_HIGH>;
			nvidia,active-panel = <&sor1_hdmi_display>;
			hdmi-display {
				status = "okay";
				disp-default-out {
                    			nvidia,out-flags = <TEGRA_DC_OUT_HOTPLUG_HIGH>;
                		};
			};
			dp-display {
				status = "disabled";
			};
		};

After making that change I have no output on the display.

I tried 3 different monitors. I checked the HPD pin with the multimeter; it’s 5V when monitor is connected - so the cable is ok.

Any ideas how to get hot-plug detection to work?

  1. Please share the full dmesg text file for the hotplug case. Do not parse any log.

  2. Please do not use this node to check hotplug, it is more like a node for you to input. Not to tell you the status of hotplug.

dino@dino-desktop:~$ sudo cat /sys/kernel/debug/tegra_hdmi/hotplug

  1. full dts. (converted from the dtb using dtc tool)
1 Like

Thank you Wayne.

Here they are:
dmesg_hdmi_hotplug.txt (62.4 KB)
tegra186-quill-p3489-0888-a00-00-base.dts (485.3 KB)

I would like to see hdmi port powered down until the monitor is connected. And again after the monitor is disconnected.

Just want to know, is your hardware design on the HDMI lane following the design guide or not?

I see you put the xbar from 21034 to 01234.

As for the hotplug, I see the kernel is responding to the hotplug event. Does that match what you see? plug → unplug → plug?

I’m using the reference carrier board (P2597).

I flashed the TX2 using SDKManager. So, I haven’t customised neither hardware nor software.

As for the hotplug, I see the kernel is responding to the hotplug event. Does that match what you see? plug → unplug → plug?

Well, I’m probing the voltage using multimeter here:


And it reads 5V even when hdmi is not plugged in.
My understanding is that means hdmi port is powered up. I want it powered down until hdmi is inserted.

I got confused here. If this is on “devkit”, then you don’t need to change anything in device tree or kernel.

Hotplug should always work on it when flashed with sdkmanager software. Unless it is hardware defect.

Do you have other p2597 or HDMI monitor to validate this issue?

I tried with multiple monitors and I’ll try to get another P2597.

Ok, how should I check if the hdmi port is actually powered? Is there a GPIO I could read or something?

You can check the board schematic

So I’m spying the I2C communication to U29 I/O expander (that’s where 5V0_HDMI_EN is). There’s some activity during boot, but after boot when I plug/unplug the hdmi cable, there’s no activity on the line. It seems the hdmi port gets powered up during boot and it stays powered regardless of the hot-plug state.

I’ll test with a different P2597 next week.

Confirmed on the other P2597 and using two different monitors.
Same thing as before: voltage is always 5V (on the hdmi) and there is no activity on the I2C when hdmi is plugged in. It seems that the hdmi port is always powered even when not used.

Sorry that I still don’t understand what do you want to ask here.

Your kernel log from 8/18 indicates the hotplug detection is working.

91.613176] tegradc 15210000.nvdisplay: blank - powerdown
[ 91.634836] tegradc 15210000.nvdisplay: unblank
[ 91.635734] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[ 91.635847] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[ 91.635937] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[ 91.637363] Parent Clock set for DC plld2
[ 91.644647] tegradc 15210000.nvdisplay: hdmi: tmds rate:533250K prod-setting:prod_c_hdmi_300m_600m
[ 91.646164] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[ 91.714158] extcon-disp-state external-connection:disp-state: cable 47 state 1
[ 91.714162] Extcon AUX1(HDMI) enable
[ 91.714389] extcon-disp-state external-connection:disp-state: cable 51 state 1
[ 91.714393] Extcon HDMI: HPD enabled
[ 91.714452] tegradc 15210000.nvdisplay: hdmi: plugged

Sorry, I’ll try to explain better.

In short - I want to save power.

My (exploratory) project is to figure out how to not waste power on things that are not used (like an hdmi port that’s not connected to a monitor). I would like to figure out how to do this on the devkit board (P2597) first.

I want to confirm that the hdmi port is powered down until a hdmi monitor is connected and after it’s disconnected. My expectation is that the TX2 waits for the signal from the hot-plug pin and then sets 5V0_HDMI_EN high to fully power up the hdmi port (or something along those lines).

With that assumption:

  • I checked the hdmi 5V rail:


    I expected to read values other than 5V when hdmi monitor is not connected and 5V when hdmi monitor is connected.
    What I found instead was 5V in both cases (it’s always 5V).

  • I checked the traffic on the I2C_GP1.
    I expected to see 5V0_HDMI_EN get set high when hdmi monitor is connected and low when hdmi monitor is disconnected.
    What I found was no traffic on I2C_GP1 when connecting/disconnecting hdmi monitor.

This is related to how the software handle the VDD power source.

In the tegra devcie tree, the vdd_hdmi_5v0-supply is assigned by this “vdd_hdmi” regulator.
And this regulator is a always-on one.

hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-cvb-prod-p2597-b00-p3489-1000-a00-00.dtsi

	vdd_hdmi: regulator@3 {
		compatible = "regulator-fixed-sync";
		reg = <3>;
		regulator-name = "vdd-hdmi";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio_i2c_0_74 12 1>;
		enable-active-high;
		regulator-always-on;
		regulator-boot-on;
	};

Actually, I didn’t track whether our driver implements to disable 5v0 when display is removed. I guess there is no such code. You can track the driver code.

1 Like